| <?xml version="1.0" encoding="UTF-8"?> |
| <xs:schema xmlns:tns="http://org.eclipse.tigerstripe/xml/tigerstripeExport/v2-0" |
| xmlns:xs="http://www.w3.org/2001/XMLSchema" |
| targetNamespace="http://org.eclipse.tigerstripe/xml/tigerstripeExport/v2-0" |
| elementFormDefault="qualified" |
| version="1.1"> |
| |
| <xs:element name="annotations" type="xs:string"/> |
| |
| <xs:complexType name="annotatedType"> |
| <xs:sequence> |
| <xs:element ref="tns:annotations" minOccurs="0" maxOccurs="1"/> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:element name="tigerstripeProject"> |
| <xs:complexType> |
| <xs:complexContent> |
| <xs:extension base="tns:annotatedType"> |
| <xs:sequence> |
| <xs:element name="comment" type="xs:string" minOccurs="0"/> |
| <xs:choice> |
| <xs:element ref="tns:artifact" minOccurs="0" maxOccurs="unbounded"/> |
| <xs:element ref="tns:artifactFile" minOccurs="0" maxOccurs="unbounded"/> |
| </xs:choice> |
| </xs:sequence> |
| <xs:attribute name="name" type="xs:string" use="required"/> |
| <xs:attribute name="version" type="xs:string" use="required"/> |
| </xs:extension> |
| </xs:complexContent> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="artifact"> |
| <xs:complexType> |
| <xs:complexContent> |
| <xs:extension base="tns:annotatedType"> |
| <xs:sequence> |
| <xs:element ref="tns:implements" minOccurs="0"/> |
| <xs:element name="comment" type="xs:string" minOccurs="0"/> |
| <xs:element ref="tns:stereotypes" minOccurs="0"/> |
| <xs:element ref="tns:literals" minOccurs="0"/> |
| <xs:element ref="tns:fields" minOccurs="0"/> |
| <xs:element ref="tns:methods" minOccurs="0"/> |
| <xs:choice> |
| <xs:element ref="tns:enumerationSpecifics" minOccurs="0"/> |
| <xs:element ref="tns:associationSpecifics" minOccurs="0"/> |
| <xs:element ref="tns:associationClassSpecifics" minOccurs="0"/> |
| <xs:element ref="tns:dependencySpecifics" minOccurs="0"/> |
| <xs:element ref="tns:querySpecifics" minOccurs="0"/> |
| </xs:choice> |
| </xs:sequence> |
| <xs:attribute name="name" type="xs:string" use="required"/> |
| <xs:attribute name="extendedArtifact" type="xs:string" use="optional"/> |
| <xs:attribute name="artifactType" type="xs:string" use="required"/> |
| <xs:attribute name="isAbstract" type="xs:boolean" use="optional"/> |
| </xs:extension> |
| </xs:complexContent> |
| <!-- The name and extendedArtifact are the FQNs of the artifacts not the simple name --> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="artifactFile"> |
| <xs:complexType> |
| <xs:attribute name="name" type="xs:string" use="required"/> |
| <xs:attribute name="artifactType" type="xs:string" use="optional"/> |
| <xs:attribute name="fileName" type="xs:string" use="required"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="fields"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element ref="tns:field" minOccurs="0" maxOccurs="unbounded"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="field"> |
| <xs:complexType> |
| <xs:complexContent> |
| <xs:extension base="tns:annotatedType"> |
| <xs:sequence> |
| <xs:element ref="tns:stereotypes" minOccurs="0"/> |
| <xs:element name="comment" type="xs:string" minOccurs="0"/> |
| </xs:sequence> |
| <xs:attribute name="name" type="xs:string" use="required"/> |
| <xs:attribute name="visibility" type="xs:string" use="required"/> |
| <xs:attribute name="type" type="xs:string" use="required"/> |
| <xs:attribute name="typeMultiplicity" type="xs:string" use="required"/> |
| <xs:attribute name="readonly" type="xs:boolean" use="required"/> |
| <xs:attribute name="unique" type="xs:boolean" use="required"/> |
| <xs:attribute name="ordered" type="xs:boolean" use="required"/> |
| <xs:attribute name="defaultValue" type="xs:string" use="optional"/> |
| </xs:extension> |
| </xs:complexContent> |
| <!-- The value in type is the FQN of the type --> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="literals"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element ref="tns:literal" minOccurs="0" maxOccurs="unbounded"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="literal"> |
| <xs:complexType> |
| <xs:complexContent> |
| <xs:extension base="tns:annotatedType"> |
| <xs:sequence> |
| <xs:element ref="tns:stereotypes" minOccurs="0"/> |
| <xs:element name="comment" type="xs:string" minOccurs="0"/> |
| </xs:sequence> |
| <xs:attribute name="name" type="xs:string" use="required"/> |
| <xs:attribute name="value" type="xs:string" use="required"/> |
| <xs:attribute name="type" type="xs:string" use="required"/> |
| <xs:attribute name="visibility" type="xs:string" use="required"/> |
| <!-- The value in type is the FQN of the type --> |
| </xs:extension> |
| </xs:complexContent> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="methods"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element ref="tns:method" minOccurs="0" maxOccurs="unbounded"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="method"> |
| <xs:complexType> |
| <xs:complexContent> |
| <xs:extension base="tns:annotatedType"> |
| <xs:sequence> |
| <xs:element ref="tns:stereotypes" minOccurs="0"/> |
| <xs:element ref="tns:arguments" minOccurs="0" maxOccurs="unbounded"/> |
| <xs:element ref="tns:returnStereotypes" minOccurs="0"/> |
| <xs:element ref="tns:exceptions" minOccurs="0" maxOccurs="unbounded"/> |
| <xs:element name="comment" type="xs:string" minOccurs="0"/> |
| </xs:sequence> |
| <xs:attribute name="name" type="xs:string" use="required"/> |
| <xs:attribute name="visibility" type="xs:string" use="required"/> |
| <xs:attribute name="returnType" type="xs:string" use="optional"/> |
| <xs:attribute name="returnTypeMultiplicity" type="xs:string" use="optional"/> |
| <xs:attribute name="isVoid" type="xs:boolean" use="required"/> |
| <xs:attribute name="isAbstract" type="xs:boolean" use="required"/> |
| <xs:attribute name="unique" type="xs:boolean" use="required"/> |
| <xs:attribute name="ordered" type="xs:boolean" use="required"/> |
| <xs:attribute name="defaultReturnValue" type="xs:string" use="optional"/> |
| <xs:attribute name="methodReturnName" type="xs:string" use="optional"/> |
| <!-- The value in type is the FQN of the type --> |
| </xs:extension> |
| </xs:complexContent> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="arguments"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element ref="tns:argument" minOccurs="0" maxOccurs="unbounded"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="argument"> |
| <xs:complexType> |
| <xs:complexContent> |
| <xs:extension base="tns:annotatedType"> |
| <xs:sequence> |
| <xs:element name="comment" type="xs:string" minOccurs="0"/> |
| <xs:element ref="tns:stereotypes" minOccurs="0"/> |
| </xs:sequence> |
| <xs:attribute name="name" type="xs:string" use="required"/> |
| <xs:attribute name="typeMultiplicity" type="xs:string" use="required"/> |
| <xs:attribute name="type" type="xs:string" use="required"/> |
| <xs:attribute name="unique" type="xs:boolean" use="required"/> |
| <xs:attribute name="ordered" type="xs:boolean" use="required"/> |
| <xs:attribute name="defaultValue" type="xs:string" use="optional"/> |
| <xs:attribute name="direction" type="xs:string" use="optional"/> |
| <!-- The value in type is the FQN of the type --> |
| </xs:extension> |
| </xs:complexContent> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="exceptions"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element ref="tns:exception" minOccurs="0" maxOccurs="unbounded"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="exception"> |
| <xs:complexType> |
| <xs:attribute name="name" type="xs:string" use="required"/> |
| <!-- The value in name is the FQN --> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="stereotypes"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element ref="tns:stereotype" minOccurs="0" maxOccurs="unbounded"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="returnStereotypes"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element ref="tns:stereotype" minOccurs="0" maxOccurs="unbounded"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="stereotype"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element ref="tns:stereotypeAttribute" minOccurs="0" maxOccurs="unbounded"/> |
| </xs:sequence> |
| <xs:attribute name="name" type="xs:string" use="required"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="stereotypeAttribute"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element name="value" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> |
| </xs:sequence> |
| <xs:attribute name="name" type="xs:string" use="required"/> |
| <xs:attribute name="array" type="xs:boolean" use="required"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="implements"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element name="implementedInterface" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <!-- Specific content for each Artifact Type --> |
| <xs:element name="enumerationSpecifics"> |
| <xs:complexType> |
| <xs:attribute name="baseType" type="xs:string" use="required"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="associationSpecifics"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element ref="tns:associationEnd" minOccurs="2" maxOccurs="2"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <!-- Note, the two associationEnds are AEnd and ZEnd --> |
| <xs:element name="associationEnd"> |
| <xs:complexType> |
| <xs:complexContent> |
| <xs:extension base="tns:annotatedType"> |
| <xs:sequence> |
| <xs:element ref="tns:stereotypes" minOccurs="0"/> |
| <xs:element name="comment" type="xs:string" minOccurs="0"/> |
| </xs:sequence> |
| <xs:attribute name="name" type="xs:string" use="required"/> |
| <xs:attribute name="end" type="xs:string" use="required"/> |
| <xs:attribute name="type" type="xs:string" use="required"/> |
| <xs:attribute name="multiplicity" type="xs:string" use="required"/> |
| <xs:attribute name="aggregation" type="xs:string" use="required"/> |
| <xs:attribute name="changeable" type="xs:string" use="required"/> |
| <xs:attribute name="navigable" type="xs:boolean" use="required"/> |
| <xs:attribute name="ordered" type="xs:boolean" use="required"/> |
| <xs:attribute name="visibility" type="xs:string" use="required"/> |
| <xs:attribute name="unique" type="xs:boolean" use="required"/> |
| <!-- the value for "end" cannot be extracted from the model and so is set in the template --> |
| <!-- The value in type is the FQN of the type --> |
| </xs:extension> |
| </xs:complexContent> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="associationClassSpecifics"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element ref="tns:associationEnd" minOccurs="2" maxOccurs="2"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="dependencySpecifics"> |
| <xs:complexType> |
| <xs:attribute name="aEndTypeName" type="xs:string" use="required"/> |
| <xs:attribute name="zEndTypeName" type="xs:string" use="required"/> |
| <!-- The value in EndTypeName is the FQN of the type --> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="querySpecifics"> |
| <xs:complexType> |
| <xs:attribute name="returnedTypeName" type="xs:string" use="required"/> |
| <xs:attribute name="returnedTypeMultiplicity" type="xs:string" use="required"/> |
| <!-- The value in returnedTypeName is the FQN of the type --> |
| </xs:complexType> |
| </xs:element> |
| </xs:schema> |