home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2007 September / maximum-cd-2007-09.iso / Assets / data / AssaultCube_v0.93.exe / docs / schemas / cuberef.xsd
Encoding:
Extensible Markup Language  |  2007-05-10  |  8.9 KB  |  258 lines

  1. ∩╗┐<?xml version="1.0" encoding="utf-8"?>
  2.  
  3. <!-- 
  4.   XML Schema for types in a CubeScript reference document, v0.1
  5. -->
  6.  
  7. <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://cubers.net/Schemas/CubeRef" xmlns="http://cubers.net/Schemas/CubeRef">
  8.  
  9.   <!-- simple types -->
  10.   
  11.   <xs:simpleType name="nameType">
  12.     <xs:restriction base="xs:string">
  13.       <xs:maxLength value="32" />
  14.     </xs:restriction>
  15.   </xs:simpleType>
  16.   
  17.   <xs:simpleType name="descriptionType">
  18.     <xs:restriction base="xs:string">
  19.       <xs:maxLength value="128" />
  20.     </xs:restriction>
  21.   </xs:simpleType>
  22.   
  23.   <xs:simpleType name="remarkType">
  24.     <xs:restriction base="xs:string">
  25.       <xs:maxLength value="1024" />
  26.     </xs:restriction>
  27.   </xs:simpleType>
  28.  
  29.   <xs:simpleType name="codeType">
  30.     <xs:restriction base="xs:string">
  31.       <xs:maxLength value="256" />
  32.     </xs:restriction>
  33.   </xs:simpleType>
  34.   
  35.   <xs:simpleType name="urlType">
  36.     <xs:restriction base="xs:string">
  37.       <xs:maxLength value="64">
  38.       </xs:maxLength>
  39.     </xs:restriction>
  40.   </xs:simpleType>
  41.   
  42.   <xs:simpleType name="tokenType">
  43.     <xs:restriction base="xs:string">
  44.       <xs:maxLength value="8" />
  45.     </xs:restriction>
  46.   </xs:simpleType>
  47.   
  48.   <xs:simpleType name="valueNotesType">
  49.     <xs:restriction base="xs:string">
  50.       <xs:maxLength value="128" />
  51.     </xs:restriction>
  52.   </xs:simpleType>
  53.  
  54.   <xs:simpleType name="keyAliasType">
  55.     <xs:restriction base="xs:string">
  56.       <xs:maxLength value="16" />
  57.     </xs:restriction>
  58.   </xs:simpleType>
  59.   
  60.   <!-- complex types -->
  61.   
  62.     <!-- value descriptions -->
  63.   
  64.   <xs:complexType name="valueDescriptionType">
  65.     <xs:attribute name="token" use="required" type="tokenType"/>
  66.     <xs:attribute name="description" use="required" type="descriptionType"/>
  67.     <xs:attribute name="valueNotes" use="optional" type="valueNotesType"/>    
  68.   </xs:complexType>
  69.  
  70.   <xs:complexType name="intVariableValueDescriptionType">
  71.     <xs:complexContent>
  72.       <xs:extension base="valueDescriptionType">
  73.         <xs:attribute name="token" use="optional" type="tokenType"/>
  74.         <xs:attribute name="minValue" use="required" type="xs:int"/>
  75.         <xs:attribute name="maxValue" use="required" type="xs:int"/>
  76.         <xs:attribute name="defaultValue" use="required" type="xs:int"/>
  77.         <xs:attribute name="readOnly" use="optional" type="xs:boolean" default="false"/>
  78.       </xs:extension>
  79.     </xs:complexContent>
  80.   </xs:complexType>
  81.  
  82.   <xs:complexType name="returnValueDescriptionType">
  83.     <xs:complexContent>
  84.       <xs:extension base="valueDescriptionType">
  85.       </xs:extension>
  86.     </xs:complexContent>
  87.   </xs:complexType>
  88.  
  89.   <xs:complexType name="argumentValueDescriptionType">
  90.     <xs:complexContent>
  91.       <xs:extension base="valueDescriptionType">
  92.         <xs:attribute name="optional" use="optional" type="xs:boolean" default="false"/>
  93.       </xs:extension>
  94.     </xs:complexContent>
  95.   </xs:complexType>
  96.  
  97.   <xs:complexType name="variableArgumentValueDescriptionType">
  98.     <xs:complexContent>
  99.       <xs:extension base="argumentValueDescriptionType">
  100.         <xs:attribute name="token" type="tokenType" default="..."/>
  101.       </xs:extension>
  102.     </xs:complexContent>
  103.   </xs:complexType>
  104.  
  105.   <xs:complexType name="argumentValueDescriptionCollectionType">
  106.     <xs:sequence>
  107.       <xs:element name="argument" type="argumentValueDescriptionType" minOccurs="0" maxOccurs="unbounded"/>
  108.       <xs:element name="variableArgument" type="variableArgumentValueDescriptionType" minOccurs="0" maxOccurs="1"/>
  109.     </xs:sequence>
  110.   </xs:complexType>
  111.   
  112.   <!-- keys -->
  113.  
  114.   <xs:complexType name="keyType">
  115.     <xs:attribute name="alias" type="keyAliasType" use="required"/>
  116.     <xs:attribute name="name" type="nameType" use="optional"/>
  117.     <xs:attribute name="description" type="descriptionType" use="optional"/>
  118.   </xs:complexType>
  119.  
  120.   <xs:complexType name="keyCollectionType">
  121.     <xs:sequence>
  122.       <xs:element name="key" type="keyType" minOccurs="0" maxOccurs="unbounded"/>
  123.     </xs:sequence>
  124.   </xs:complexType>
  125.  
  126.   <!-- references -->
  127.     
  128.   <xs:complexType name="referenceType">
  129.     <xs:attribute name="name" use="optional" type="nameType"/>
  130.   </xs:complexType>
  131.  
  132.   <xs:complexType name="identifierReferenceType">
  133.     <xs:complexContent>
  134.       <xs:extension base="referenceType">
  135.         <xs:attribute name="identifier" use="required" type="nameType" />
  136.       </xs:extension>
  137.     </xs:complexContent>
  138.   </xs:complexType>
  139.  
  140.   <xs:complexType name="webReferenceType">
  141.     <xs:complexContent>
  142.       <xs:extension base="referenceType">
  143.         <xs:attribute name="url" use="required" type="urlType"/>
  144.       </xs:extension>
  145.     </xs:complexContent>
  146.   </xs:complexType>
  147.  
  148.   <xs:complexType name="wikiReferenceType">
  149.     <xs:complexContent>
  150.       <xs:extension base="referenceType">
  151.         <xs:attribute name="article" use="required" type="urlType"/>
  152.       </xs:extension>
  153.     </xs:complexContent>
  154.   </xs:complexType>
  155.  
  156.   <xs:complexType name="referenceCollectionType">
  157.     <xs:sequence>
  158.       <xs:element name="identifierReference" type="identifierReferenceType" minOccurs="0" maxOccurs="unbounded"/>
  159.       <xs:element name="webReference" type="webReferenceType" minOccurs="0" maxOccurs="unbounded"/>
  160.     </xs:sequence>
  161.   </xs:complexType> 
  162.   
  163.     <!-- remarks -->
  164.   
  165.   <xs:complexType name="remarkCollectionType">
  166.     <xs:sequence>
  167.       <xs:element name="remark" type="remarkType" minOccurs="1" maxOccurs="unbounded"/>
  168.     </xs:sequence>
  169.   </xs:complexType>
  170.  
  171.   <!-- examples -->
  172.  
  173.   <xs:complexType name="exampleType">
  174.     <xs:sequence>
  175.       <xs:element name="code" type="codeType" minOccurs="1" maxOccurs="1"/>
  176.       <xs:element name="explanation" type="descriptionType" minOccurs="0" maxOccurs="1"/>
  177.     </xs:sequence>
  178.   </xs:complexType>
  179.  
  180.   <xs:complexType name="exampleCollectionType">
  181.     <xs:sequence>
  182.       <xs:element name="example" type="exampleType" minOccurs="1" maxOccurs="unbounded"/>
  183.     </xs:sequence>
  184.   </xs:complexType>
  185.   
  186.   <!-- identifiers -->
  187.   
  188.   <xs:complexType name="identifierType" abstract="true">
  189.     <xs:sequence>
  190.       <xs:element name="description" type="descriptionType"/>
  191.       <xs:element name="remarks" type="remarkCollectionType" minOccurs="0" maxOccurs="1"/>
  192.       <xs:element name="examples" type="exampleCollectionType" minOccurs="0" maxOccurs="1"/>
  193.       <xs:element name="references" type="referenceCollectionType" minOccurs="0" maxOccurs="1"/>
  194.       <xs:element name="defaultKeys" type="keyCollectionType" minOccurs="0" maxOccurs="1"/>
  195.     </xs:sequence>
  196.     <xs:attribute name="name" use="required" type="nameType"/>
  197.   </xs:complexType>
  198.  
  199.   <xs:complexType name="identifierCollectionType">
  200.     <xs:sequence>
  201.       <xs:element name="command" type="commandType" minOccurs="0" maxOccurs="unbounded"/>
  202.       <xs:element name="variable" type="variableType" minOccurs="0" maxOccurs="unbounded"/>
  203.     </xs:sequence>
  204.     <xs:attribute name="sort" type="xs:boolean" default="true"/>
  205.   </xs:complexType>
  206.  
  207.   <xs:complexType name="commandType">
  208.     <xs:complexContent>
  209.       <xs:extension base="identifierType">
  210.         <xs:sequence>
  211.           <xs:element name="arguments" type="argumentValueDescriptionCollectionType" minOccurs="0" maxOccurs="1"/>
  212.           <xs:element name="return" type="returnValueDescriptionType" minOccurs="0" maxOccurs="1"/>
  213.         </xs:sequence>
  214.       </xs:extension>
  215.     </xs:complexContent>
  216.   </xs:complexType>
  217.  
  218.   <xs:complexType name="variableType">
  219.     <xs:complexContent>
  220.       <xs:extension base="identifierType">
  221.         <xs:sequence>
  222.           <xs:element name="value" type="intVariableValueDescriptionType" minOccurs="1" maxOccurs="1"/>
  223.         </xs:sequence>
  224.       </xs:extension>
  225.     </xs:complexContent>
  226.   </xs:complexType>
  227.  
  228.     <!-- sections -->
  229.   
  230.   <xs:complexType name="sectionType">
  231.     <xs:sequence>
  232.       <xs:element name="description" type="descriptionType" minOccurs="0" maxOccurs="1"/>
  233.       <xs:element name="identifiers" type="identifierCollectionType" minOccurs="1" maxOccurs="1"/>
  234.     </xs:sequence>
  235.     <xs:attribute name="name" use="required" type="nameType"/>
  236.   </xs:complexType>
  237.  
  238.   <xs:complexType name="sectionCollectionType">
  239.     <xs:sequence>
  240.       <xs:element name="section" type="sectionType" minOccurs="1" maxOccurs="unbounded"/>
  241.     </xs:sequence>
  242.     <xs:attribute name="sort" type="xs:boolean" default="true"/>
  243.   </xs:complexType>
  244.  
  245.     <!-- document root -->
  246.   
  247.   <xs:complexType name="cuberefType">
  248.     <xs:sequence>
  249.       <xs:element name="description" type="descriptionType" minOccurs="0" maxOccurs="1"/>
  250.       <xs:element name="sections" type="sectionCollectionType" minOccurs="1" maxOccurs="1"/>
  251.     </xs:sequence>
  252.     <xs:attribute name="name" type="nameType" use="required"/>
  253.     <xs:attribute name="version" type="nameType" use="optional"/>
  254.   </xs:complexType>
  255.  
  256.   <xs:element name="cuberef" type="cuberefType"/>
  257.   
  258. </xs:schema>