123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- <?xml version="1.0" encoding="utf-8" ?>
- <xs:schema id="FlatFile"
- targetNamespace="http://www.wayne.com/2007-06-29/FlatFile.xsd"
- elementFormDefault="qualified"
- xmlns="http://www.wayne.com/2007-06-29/FlatFile.xsd"
- xmlns:mstns="http://www.wayne.com/2007-06-29/FlatFile.xsd"
- xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <!--.......................... FlatFile ............................................-->
- <xs:element name="FlatFile" >
- <xs:complexType >
- <xs:sequence>
- <xs:element ref="Section" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="version" type="xs:string" use="required"/>
-
- </xs:complexType>
- </xs:element>
- <!--........................... Section ............................................-->
- <xs:element name="Section">
-
- <xs:complexType>
-
- <xs:sequence>
- <xs:element name="Definitions" type="DefinitionsType" minOccurs="0"/>
- <xs:element name="Record" type="RecordType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="fieldSeparator" type ="xs:string" use="required"/>
- <xs:attribute name="recordSeparator" type ="xs:string" use="optional"/>
- </xs:complexType>
- <!--Primary keys -->
- <xs:key name="FormatDefinitionIdKey" >
- <xs:selector xpath="mstns:Definitions/mstns:FormatDefinitions/mstns:Format"/>
- <xs:field xpath="@formatId"/>
- </xs:key>
- </xs:element>
-
- <!-- ............................... Definitions ..................................-->
- <xs:complexType name="DefinitionsType">
- <xs:sequence>
- <xs:element name="FormatDefinitions" minOccurs="0">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="Format" minOccurs="0" maxOccurs="unbounded">
- <xs:complexType>
- <xs:simpleContent >
- <xs:extension base="xs:string">
- <xs:attribute name="formatId" type="xs:string" use="required"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- <!-- ............................. Record ..........................................-->
- <xs:complexType name="RecordType">
- <xs:sequence >
-
- <!-- Fields-->
- <xs:element name="Field" minOccurs ="0" maxOccurs="unbounded" type ="FieldType">
- <!--Foreign key to the format definitions-->
- <xs:keyref name="FieldDefinedFormat_FormatDefinition" refer="FormatDefinitionIdKey">
- <xs:selector xpath="."/>
- <xs:field xpath="@formatId"/>
- </xs:keyref>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="FieldType">
- <xs:simpleContent >
- <xs:extension base="xs:string">
- <xs:attribute name="type" type="fieldDataType" use="required"/>
- <xs:attribute name="format" type="xs:string" />
- <xs:attribute name="formatId" type="xs:string"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
-
- <!-- Field datatype type.-->
- <xs:simpleType name="fieldDataType">
- <xs:restriction base="xs:string">
- <xs:enumeration value="String"/>
- <xs:enumeration value="Byte"/>
- <xs:enumeration value="Int16"/>
- <xs:enumeration value="Int32"/>
- <xs:enumeration value="Int64"/>
- <xs:enumeration value="UInt16"/>
- <xs:enumeration value="UInt32"/>
- <xs:enumeration value="UInt64"/>
- <xs:enumeration value="Decimal"/>
- <xs:enumeration value="Double"/>
- <xs:enumeration value="DateTime"/>
- <xs:enumeration value="Boolean"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:schema>
|