FixAntenna/NetCore/Dictionaries/fixdic_abstract.xsd (353 lines of code) (raw):

<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="http://www.b2bits.com/FIXProtocol" xmlns="http://www.b2bits.com/FIXProtocol" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0"> <!-- FIX Protocol specification dictionary --> <xs:complexType name="fixdic"> <xs:sequence> <xs:element name="typelist" type="typelist" minOccurs="0"/> <xs:element name="fielddic" type="fielddic" minOccurs="0"/> <xs:element name="msgdic" type="msgdic" minOccurs="0"/> <xs:element name="descr" type="descr" minOccurs="0"/> </xs:sequence> <xs:attribute name="id" type="xs:string" use="required"/> <xs:attribute name="fixversion" type="fixversion_t" use="required"/> <xs:attribute name="title" type="xs:string"/> <xs:attribute name="version" type="xs:string"/> <xs:attribute name="date" type="xs:string"/> </xs:complexType> <!-- FIX version and EP number --> <xs:simpleType name="fixversion_t"> <xs:restriction base="xs:token"> <xs:enumeration value="4.0"/> <xs:enumeration value="4.1"/> <xs:enumeration value="4.2"/> <xs:enumeration value="4.3"/> <xs:enumeration value="4.4"/> <xs:enumeration value="5.0"/> <xs:enumeration value="5.0SP1"/> <xs:enumeration value="5.0SP2"/> <xs:enumeration value="T1.1"/> <xs:enumeration value="5.0SP2EP"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="epnum_t"> <xs:restriction base="xs:positiveInteger"/> </xs:simpleType> <!-- Attribute group for revisions (to specify where entity was added/updated/deprecated) --> <xs:attributeGroup name="revisionattr"> <xs:attribute name="added" type="fixversion_t"/> <xs:attribute name="addedep" type="epnum_t"/> <xs:attribute name="deprecated" type="fixversion_t"/> <xs:attribute name="deprecatedep" type="epnum_t"/> <xs:attribute name="updated" type="fixversion_t"/> <xs:attribute name="updatedep" type="epnum_t"/> </xs:attributeGroup> <!-- Data type definition list --> <xs:complexType name="typelist"> <xs:sequence> <xs:element name="typedef" type="typedef" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- The data type definition --> <xs:complexType name="typedef"> <xs:sequence> <xs:element name="descr" type="descr" minOccurs="0"/> </xs:sequence> <xs:attribute name="type" type="xs:string" use="required"/> <xs:attribute name="extends" type="xs:string"/> <!-- Specifies either type is multiple value type and type of the underlying value --> <xs:attribute name="valuetype" type="xs:string"/> <xs:attribute name="displayname" type="xs:string"/> <xs:attributeGroup ref="revisionattr"/> </xs:complexType> <!-- Field definition list --> <xs:complexType name="fielddic"> <xs:sequence> <xs:element name="valblockdef" type="valblockdef" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="fielddef" type="fielddef" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- Values block definition for values list for using in several field definitions --> <xs:complexType name="valblockdef"> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="item" type="item"/> <xs:element name="range" type="range"/> <xs:element name="multi" type="multi"/> </xs:choice> <xs:element name="descr" type="descr" minOccurs="0"/> </xs:sequence> <xs:attribute name="id" type="xs:string" use="required"/> <xs:attribute name="name" type="xs:string"/> </xs:complexType> <!-- The field definition (lenfield only for fielddef with type="data" or type="XMLData") --> <xs:complexType name="fielddef"> <xs:sequence> <xs:element name="alias" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="item" type="item"/> <xs:element name="range" type="range"/> <xs:element name="multi" type="multi"/> <xs:element name="valblock" type="valblock"/> </xs:choice> <xs:element name="descr" type="descr" minOccurs="0"/> </xs:sequence> <xs:attribute name="tag" type="xs:positiveInteger" use="required"/> <xs:attribute name="name" type="xs:string"/> <xs:attribute name="type" type="xs:string" use="required"/> <xs:attribute name="transport"> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="Y"/> <xs:enumeration value="N"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="lenfield" type="xs:positiveInteger"/> <xs:attributeGroup ref="revisionattr"/> </xs:complexType> <!-- Allowed value --> <xs:complexType name="item" mixed="true"> <xs:complexContent> <xs:extension base="comment"> <xs:attribute name="val" type="xs:string" use="required"/> <xs:attribute name="id" type="xs:string"/> </xs:extension> </xs:complexContent> </xs:complexType> <!-- Range of allowed values --> <xs:complexType name="range" mixed="true"> <xs:complexContent> <xs:extension base="comment"> <xs:attribute name="minval" type="xs:string" use="required"/> <xs:attribute name="maxval" type="xs:string" use="required"/> <xs:attribute name="type" type="xs:string" use="required"/> </xs:extension> </xs:complexContent> </xs:complexType> <!-- Multivalue string values --> <xs:complexType name="multi"> <xs:sequence> <xs:element name="item" type="item" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- Reference to the values block --> <xs:complexType name="valblock"> <xs:attribute name="idref" type="xs:string" use="required"/> </xs:complexType> <!-- Message definition list --> <xs:complexType name="msgdic"> <xs:sequence> <xs:element name="blockdef" type="blockdef" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="msgdef" type="msgdef" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- The message definition --> <xs:complexType name="msgdef"> <xs:sequence> <xs:element name="alias" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="field" type="field"/> <xs:element name="block" type="block"/> <xs:element name="group" type="group"/> </xs:choice> <xs:element name="descr" type="descr" minOccurs="0"/> </xs:sequence> <xs:attribute name="msgtype" type="xs:string" use="required"/> <xs:attribute name="name" type="xs:string"/> <xs:attribute name="admin"> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="Y"/> <xs:enumeration value="N"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attributeGroup ref="revisionattr"/> </xs:complexType> <!-- Component block definition --> <xs:complexType name="blockdef"> <xs:sequence> <xs:element name="alias" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="field" type="field"/> <xs:element name="block" type="block"/> <xs:element name="group" type="group"/> </xs:choice> <xs:element name="descr" type="descr" minOccurs="0"/> </xs:sequence> <xs:attribute name="id" type="xs:string" use="required"/> <xs:attribute name="name" type="xs:string"/> <xs:attribute name="transport"> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="Y"/> <xs:enumeration value="N"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attributeGroup ref="revisionattr"/> </xs:complexType> <!-- Repeating group definition --> <xs:complexType name="group"> <xs:choice maxOccurs="unbounded"> <xs:element name="field" type="field"/> <xs:element name="block" type="block"/> <xs:element name="group" type="group"/> </xs:choice> <xs:attribute name="nofield" type="xs:positiveInteger" use="required"/> <xs:attribute name="startfield" type="xs:positiveInteger" use="required"/> </xs:complexType> <!-- The component used in message, group --> <xs:complexType name="block"> <xs:sequence> <xs:element name="comment" type="comment" minOccurs="0"/> </xs:sequence> <xs:attribute name="idref" type="xs:string" use="required"/> <xs:attribute name="req"> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="Y"/> <xs:enumeration value="N"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="condreq" type="xs:string"/> </xs:complexType> <!-- Field used in message, block or group --> <xs:complexType name="field"> <xs:sequence> <xs:element name="comment" type="comment" minOccurs="0"/> </xs:sequence> <xs:attribute name="tag" type="xs:positiveInteger" use="required"/> <xs:attribute name="name" type="xs:string"/> <xs:attribute name="req"> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="Y"/> <xs:enumeration value="N"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="condreq" type="xs:string"/> </xs:complexType> <!-- Description of valblock, field, message, compoment block definitions --> <xs:complexType name="descr" mixed="true"> <xs:sequence minOccurs="0" maxOccurs="unbounded" > <xs:choice minOccurs="0"> <xs:element name="p" type="descr"/> <xs:element name="a" type="a"/> <xs:element name="fieldref" type="fieldref"/> <xs:element name="blockref" type="blockref"/> <xs:element name="msgref" type="msgref"/> <xs:element name="img" type="img"/> <xs:element name="pre" type="pre"/> <xs:element name="ul" type="ul"/> <xs:element name="ol" type="ol"/> <xs:element name="dl" type="dl"/> <xs:element name="table" type="table"/> </xs:choice> </xs:sequence> </xs:complexType> <!-- Short comment(s) used for fields or component blocks references --> <xs:complexType name="comment" mixed="true"> <xs:sequence minOccurs="0" maxOccurs="unbounded" > <xs:choice minOccurs="0"> <xs:element name="fieldref" type="fieldref"/> <xs:element name="blockref" type="blockref"/> <xs:element name="msgref" type="msgref"/> <xs:element name="a" type="a"/> </xs:choice> </xs:sequence> </xs:complexType> <!-- URL reference --> <xs:complexType name="a" mixed="true"> <xs:attribute name="href" type="xs:anyURI" use="required"/> <xs:attribute name="target" type="xs:string"/> </xs:complexType> <!-- Field reference --> <xs:complexType name="fieldref" mixed="true"> <xs:attribute name="tag" type="xs:positiveInteger" use="required"/> </xs:complexType> <!-- Component block reference --> <xs:complexType name="blockref" mixed="true"> <xs:attribute name="idref" type="xs:string" use="required"/> </xs:complexType> <!-- Message reference --> <xs:complexType name="msgref" mixed="true"> <xs:attribute name="msgtype" type="xs:string" use="required"/> </xs:complexType> <!-- Image object (typically an inlined image) --> <xs:complexType name="img"> <xs:attribute name="src" type="xs:anyURI" use="required"/> </xs:complexType> <!-- Preformatted text --> <xs:complexType name="pre" mixed="true"> <xs:attribute name="space" type="xs:string" default="preserve"/> </xs:complexType> <!-- Unordered list --> <xs:complexType name="ul"> <xs:sequence> <xs:element name="li" type="descr" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- Ordered list --> <xs:complexType name="ol"> <xs:sequence> <xs:element name="li" type="descr" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- Definition list --> <xs:complexType name="dl"> <xs:sequence maxOccurs="unbounded"> <xs:element name="dt" type="descr"/> <xs:element name="dd" type="descr"/> </xs:sequence> </xs:complexType> <!-- Table --> <xs:complexType name="table"> <xs:sequence> <xs:element name="caption" type="xs:string" minOccurs="0"/> <xs:element name="tr" type="tr" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- The table row --> <xs:complexType name="tr"> <xs:choice maxOccurs="unbounded"> <xs:element name="th" type="th"/> <xs:element name="td" type="td"/> </xs:choice> </xs:complexType> <!-- The table row header element --> <xs:complexType name="th" mixed="true"> <xs:complexContent> <xs:extension base="descr"> <xs:attribute name="colspan"/> <xs:attribute name="rowspan"/> </xs:extension> </xs:complexContent> </xs:complexType> <!-- The table row description --> <xs:complexType name="td" mixed="true"> <xs:complexContent> <xs:extension base="descr"> <xs:attribute name="colspan"/> <xs:attribute name="rowspan"/> </xs:extension> </xs:complexContent> </xs:complexType> <!-- Header --> <xs:complexType name="h1" mixed="true"> <xs:complexContent> <xs:extension base="descr"> <xs:sequence minOccurs="0"> <xs:element name="h2" type="h2"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="h2" mixed="true"> <xs:complexContent> <xs:extension base="descr"> <xs:sequence minOccurs="0"> <xs:element name="h3" type="h3"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="h3" mixed="true"> <xs:complexContent> <xs:extension base="descr"> <xs:sequence minOccurs="0"> <xs:element name="h4" type="h4"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="h4" mixed="true"> <xs:complexContent> <xs:extension base="descr"> <xs:sequence minOccurs="0"> <xs:element name="h5" type="h5"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="h5" mixed="true"> <xs:complexContent> <xs:extension base="descr"> <xs:sequence minOccurs="0"> <xs:element name="h6" type="descr"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:schema>