<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:defaultprofile="http:///defaultprofile.ecore" xmlns:defaultwebserviceprofile="http:///defaultwebserviceprofile.ecore" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http:///defaultwebserviceprofile.ecore">
  <xsd:annotation>
    <xsd:documentation>The Default Web Service Profile is targeted for packaging the client side of web services. However, the server side artifacts of the service can be packaged as well.</xsd:documentation>
  </xsd:annotation>
  <xsd:import namespace="http:///defaultprofile.ecore" schemaLocation="defaultprofile.xsd"/>
  <xsd:complexType name="Design">
    <xsd:annotation>
      <xsd:documentation>xmi:ordered=true

property order is (these are role names)
1. model
2. diagram
3. interfaceSpec
4. artifact

The Design class has no attributes, but has several associated classes including: Model, Diagram, InterfaceSpec, and Artifact. The models, diagrams, artifacts, and so on within this class are intended to describe the design elements that are necessary for the asset consumer to use the component. Refer to the description of the Model class and Diagram class in the Requirement class. </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="artifact" type="defaultprofile:Artifact"/>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="diagram" type="defaultwebserviceprofile:Diagram"/>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="model" type="defaultwebserviceprofile:Model"/>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="interfaceSpec" type="defaultwebserviceprofile:InterfaceSpec"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="Design" type="defaultwebserviceprofile:Design">
    <xsd:annotation>
      <xsd:documentation>xmi:ordered=true

property order is (these are role names)
1. model
2. diagram
3. interfaceSpec
4. artifact

The Design class has no attributes, but has several associated classes including: Model, Diagram, InterfaceSpec, and Artifact. The models, diagrams, artifacts, and so on within this class are intended to describe the design elements that are necessary for the asset consumer to use the component. Refer to the description of the Model class and Diagram class in the Requirement class. </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:complexType name="Diagram">
    <xsd:annotation>
      <xsd:documentation>xmi:ordered=false

A Model may have multiple Diagrams. In the Requirements class, the Diagram identifies the requirements-related diagrams such as the Business Concept Model diagram and the Use Case diagram, see UML Components, page 41.
The attributes are the same as the Artifact attributes; but are constrained to reference diagrams for describing the requirements for the component.
 
</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="defaultprofile:Artifact">
        <xsd:attribute name="model" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Diagram" type="defaultwebserviceprofile:Diagram">
    <xsd:annotation>
      <xsd:documentation>xmi:ordered=false

A Model may have multiple Diagrams. In the Requirements class, the Diagram identifies the requirements-related diagrams such as the Business Concept Model diagram and the Use Case diagram, see UML Components, page 41.
The attributes are the same as the Artifact attributes; but are constrained to reference diagrams for describing the requirements for the component.
 
</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:complexType name="Implementation">
    <xsd:annotation>
      <xsd:documentation>xmi:ordered=true

property order is (these are role names)
1. wsdl
2. artifact

The Implementation class has two associations, Wsdl and Artifact. The Wsdl points to the wsdl file wihch describes the web service. The Implementation class has a collection of Artifact instances. These Artifact instances identify the binary and other files that provide the component implementation. The Implementation class has no attributes. 
</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="artifact" type="defaultprofile:Artifact"/>
      <xsd:element maxOccurs="1" minOccurs="1" name="wsdl" type="defaultwebserviceprofile:Wsdl"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="Implementation" type="defaultwebserviceprofile:Implementation">
    <xsd:annotation>
      <xsd:documentation>xmi:ordered=true

property order is (these are role names)
1. wsdl
2. artifact

The Implementation class has two associations, Wsdl and Artifact. The Wsdl points to the wsdl file wihch describes the web service. The Implementation class has a collection of Artifact instances. These Artifact instances identify the binary and other files that provide the component implementation. The Implementation class has no attributes. 
</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:complexType name="InterfaceSpec">
    <xsd:annotation>
      <xsd:documentation>xmi:ordered=false

The InterfaceSpec class names the interface of the web service. There may be multiple interfaces defined on the web service, so multiple instances of this class may be required. The name attribute is the user-consumable name of the interface.

The wsdlName is the name of the section within the wsdl file that describes the interface; in essence it is an index into the wsdl file. 
</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="name" type="xsd:string"/>
    <xsd:attribute name="wsdlName" type="xsd:string"/>
  </xsd:complexType>
  <xsd:element name="InterfaceSpec" type="defaultwebserviceprofile:InterfaceSpec">
    <xsd:annotation>
      <xsd:documentation>xmi:ordered=false

The InterfaceSpec class names the interface of the web service. There may be multiple interfaces defined on the web service, so multiple instances of this class may be required. The name attribute is the user-consumable name of the interface.

The wsdlName is the name of the section within the wsdl file that describes the interface; in essence it is an index into the wsdl file. 
</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:complexType name="Model">
    <xsd:annotation>
      <xsd:documentation>xmi:ordered=true&#13;
&#13;
property order is (these are role names)&#13;
1. diagram&#13;
2. model&#13;
&#13;
This is the Model for specifying the requirements the component proposes to fulfill. There may be multiple models such as the Business Concept Model and the Use Case Model, see UML Components, page 41.&#13;
The attributes are the same as the &lt;artifact&gt; attributes; but are constrained to reference models for describing the requirements for the component. &#13;
</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="defaultprofile:Artifact">
        <xsd:attribute name="model" type="xsd:string"/>
        <xsd:attribute name="diagram" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Model" type="defaultwebserviceprofile:Model">
    <xsd:annotation>
      <xsd:documentation>xmi:ordered=true&#13;
&#13;
property order is (these are role names)&#13;
1. diagram&#13;
2. model&#13;
&#13;
This is the Model for specifying the requirements the component proposes to fulfill. There may be multiple models such as the Business Concept Model and the Use Case Model, see UML Components, page 41.&#13;
The attributes are the same as the &lt;artifact&gt; attributes; but are constrained to reference models for describing the requirements for the component. &#13;
</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:complexType name="Requirements">
    <xsd:annotation>
      <xsd:documentation>xmi:ordered=true

property order is (these are role names)
1. model
2. diagram
3. useCase
4. artifact

The models, diagrams, artifacts, and so on within this class are intended to describe the requirements that the component proposes to fulfill.</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="artifact" type="defaultprofile:Artifact"/>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="diagram" type="defaultwebserviceprofile:Diagram"/>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="model" type="defaultwebserviceprofile:Model"/>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="useCase" type="defaultwebserviceprofile:UseCase"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="Requirements" type="defaultwebserviceprofile:Requirements">
    <xsd:annotation>
      <xsd:documentation>xmi:ordered=true

property order is (these are role names)
1. model
2. diagram
3. useCase
4. artifact

The models, diagrams, artifacts, and so on within this class are intended to describe the requirements that the component proposes to fulfill.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:complexType name="Solution">
    <xsd:annotation>
      <xsd:documentation>The Solution class extends the Default Profile Solution class. This class introduces requirements, design, implementation, and test artifacts for the web service.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="defaultprofile:Solution">
        <xsd:sequence>
          <xsd:element maxOccurs="1" minOccurs="0" name="requirements" type="defaultwebserviceprofile:Requirements"/>
          <xsd:element maxOccurs="1" minOccurs="0" name="design" type="defaultwebserviceprofile:Design"/>
          <xsd:element maxOccurs="1" minOccurs="1" name="implementation" type="defaultwebserviceprofile:Implementation"/>
          <xsd:element maxOccurs="1" minOccurs="0" name="test" type="defaultwebserviceprofile:Test"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Solution" type="defaultwebserviceprofile:Solution">
    <xsd:annotation>
      <xsd:documentation>The Solution class extends the Default Profile Solution class. This class introduces requirements, design, implementation, and test artifacts for the web service.</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:complexType name="Test">
    <xsd:annotation>
      <xsd:documentation>xmi:ordered=true

property order is (these are role names)
1. model
2. diagram
3. artifact

The Test class has no attributes, but does have several associations including: model, diagram, and artifact. The models, diagrams, artifacts, and so on within this element are intended to describe the testing of the component for the asset consumer. 
</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="artifact" type="defaultprofile:Artifact"/>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="diagram" type="defaultwebserviceprofile:Diagram"/>
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="model" type="defaultwebserviceprofile:Model"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="Test" type="defaultwebserviceprofile:Test">
    <xsd:annotation>
      <xsd:documentation>xmi:ordered=true

property order is (these are role names)
1. model
2. diagram
3. artifact

The Test class has no attributes, but does have several associations including: model, diagram, and artifact. The models, diagrams, artifacts, and so on within this element are intended to describe the testing of the component for the asset consumer. 
</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:complexType name="UseCase">
    <xsd:annotation>
      <xsd:documentation>xmi:ordered=false

The web service may realize one or more use cases. This element points to a use case document.
The attributes are the same as the Artifact attributes; but are constrained to reference use case documents for the web service.
 
</xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="defaultprofile:Artifact"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="UseCase" type="defaultwebserviceprofile:UseCase">
    <xsd:annotation>
      <xsd:documentation>xmi:ordered=false

The web service may realize one or more use cases. This element points to a use case document.
The attributes are the same as the Artifact attributes; but are constrained to reference use case documents for the web service.
 
</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <xsd:complexType name="Wsdl">
    <xsd:annotation>
      <xsd:documentation>xmi:ordered=false

The Wsdl class maintains a reference to the wsdl file which possess the description of the web service. 
</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="reference" type="xsd:string"/>
  </xsd:complexType>
  <xsd:element name="Wsdl" type="defaultwebserviceprofile:Wsdl">
    <xsd:annotation>
      <xsd:documentation>xmi:ordered=false

The Wsdl class maintains a reference to the wsdl file which possess the description of the web service. 
</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
</xsd:schema>
