blob: 723a510ea8d0b4d96b72a2362c3a55be4b0beb51 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by Steve Jerman (Cisco Systems) -->
<xs:schema xmlns:tns="http://org.eclipse.tigerstripe/xml/tigerstripeExport/v1-0" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://org.eclipse.tigerstripe/xml/tigerstripeExport/v1-0" elementFormDefault="qualified" version="1.1">
<xs:element name="tigerstripeProject">
<xs:complexType>
<xs:sequence>
<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:complexType>
</xs:element>
<xs:element name="artifact">
<xs:complexType>
<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="optional"/>
<xs:attribute name="isAbstract" type="xs:boolean" use="optional"/>
<!-- 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: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"/>
<!-- 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: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: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: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: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: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="optional"/>
<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"/>
<!-- The value in type is the FQN of the type -->
</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: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: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>