Home | History | Annotate | Download | only in schemas
      1 <?xml version="1.0" encoding="UTF-8"?>
      2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
      3   <xs:element name="targetGeometry">
      4     <xs:complexType>
      5       <xs:group minOccurs="0" maxOccurs="unbounded" ref="geometry-element"/>
      6     </xs:complexType>
      7   </xs:element>
      8   <xs:element name="geometryGroup" type="geometryGroup-content"/>
      9   <xs:complexType name="geometryGroup-content">
     10     <xs:group maxOccurs="unbounded" ref="geometry-element"/>
     11     <xs:attribute name="name" use="required" type="xs:token"/>
     12   </xs:complexType>
     13   <xs:group name="geometry-element">
     14     <xs:sequence>
     15       <xs:choice minOccurs="0" maxOccurs="unbounded">
     16         <xs:element ref="component"/>
     17         <xs:element ref="geometryGroup"/>
     18       </xs:choice>
     19     </xs:sequence>
     20   </xs:group>
     21   <xs:element name="component">
     22     <xs:complexType>
     23       <xs:sequence>
     24         <xs:element minOccurs="0" ref="description"/>
     25         <xs:choice minOccurs="0" maxOccurs="unbounded">
     26           <xs:element ref="cylinder"/>
     27           <xs:element ref="ellipsoid"/>
     28           <xs:element ref="faceSet"/>
     29           <xs:element ref="tube"/>
     30           <xs:element ref="sphere"/>
     31           <xs:element ref="box"/>
     32           <xs:element ref="extrusion"/>
     33         </xs:choice>
     34       </xs:sequence>
     35       <xs:attributeGroup ref="name-attribute"/>
     36     </xs:complexType>
     37   </xs:element>
     38   <xs:element name="translation">
     39     <xs:complexType>
     40       <xs:simpleContent>
     41         <xs:extension base="three-doubles-list">
     42           <xs:attributeGroup ref="dimension-attribute"/>
     43           <xs:attributeGroup ref="Length-attribute"/>
     44         </xs:extension>
     45       </xs:simpleContent>
     46     </xs:complexType>
     47   </xs:element>
     48   <xs:element name="rotation">
     49     <xs:complexType>
     50       <xs:simpleContent>
     51         <xs:extension base="three-doubles-list">
     52           <xs:attributeGroup ref="dimension-attribute"/>
     53           <xs:attributeGroup ref="Length-attribute"/>
     54         </xs:extension>
     55       </xs:simpleContent>
     56     </xs:complexType>
     57   </xs:element>
     58   <xs:element name="about">
     59     <xs:complexType>
     60       <xs:simpleContent>
     61         <xs:extension base="three-doubles-list">
     62           <xs:attributeGroup ref="dimension-attribute"/>
     63           <xs:attributeGroup ref="Length-attribute"/>
     64         </xs:extension>
     65       </xs:simpleContent>
     66     </xs:complexType>
     67   </xs:element>
     68   <xs:element name="length">
     69     <xs:complexType>
     70       <xs:simpleContent>
     71         <xs:restriction base="xs:anyType">
     72           <xs:simpleType>
     73             <xs:restriction base="xs:double">
     74               <xs:minExclusive value="0"/>
     75             </xs:restriction>
     76           </xs:simpleType>
     77           <xs:attributeGroup ref="dimension-attribute"/>
     78           <xs:attributeGroup ref="Length-attribute"/>
     79         </xs:restriction>
     80       </xs:simpleContent>
     81     </xs:complexType>
     82   </xs:element>
     83   <xs:element name="radius">
     84     <xs:complexType>
     85       <xs:simpleContent>
     86         <xs:restriction base="xs:anyType">
     87           <xs:simpleType>
     88             <xs:restriction base="xs:double">
     89               <xs:minExclusive value="0"/>
     90             </xs:restriction>
     91           </xs:simpleType>
     92           <xs:attributeGroup ref="dimension-attribute"/>
     93           <xs:attributeGroup ref="Length-attribute"/>
     94         </xs:restriction>
     95       </xs:simpleContent>
     96     </xs:complexType>
     97   </xs:element>
     98   <xs:element name="base1">
     99     <xs:complexType>
    100       <xs:simpleContent>
    101         <xs:extension base="three-doubles-list">
    102           <xs:attributeGroup ref="dimension-attribute"/>
    103           <xs:attributeGroup ref="Length-attribute"/>
    104         </xs:extension>
    105       </xs:simpleContent>
    106     </xs:complexType>
    107   </xs:element>
    108   <xs:element name="base2">
    109     <xs:complexType>
    110       <xs:simpleContent>
    111         <xs:extension base="three-doubles-list">
    112           <xs:attributeGroup ref="dimension-attribute"/>
    113           <xs:attributeGroup ref="Length-attribute"/>
    114         </xs:extension>
    115       </xs:simpleContent>
    116     </xs:complexType>
    117   </xs:element>
    118   <xs:element name="transform">
    119     <xs:complexType>
    120       <xs:sequence>
    121         <xs:element minOccurs="0" ref="translation"/>
    122         <xs:element minOccurs="0" ref="rotation"/>
    123         <xs:element minOccurs="0" ref="about"/>
    124       </xs:sequence>
    125     </xs:complexType>
    126   </xs:element>
    127   <xs:element name="cyl-transform">
    128     <xs:complexType>
    129       <xs:sequence>
    130         <xs:element ref="translation"/>
    131         <xs:element minOccurs="0" ref="rotation"/>
    132         <xs:element minOccurs="0" ref="about"/>
    133       </xs:sequence>
    134     </xs:complexType>
    135   </xs:element>
    136   <xs:element name="cylinder">
    137     <xs:complexType>
    138       <xs:choice minOccurs="0" maxOccurs="unbounded">
    139         <xs:element ref="radius"/>
    140         <xs:choice>
    141           <xs:choice>
    142             <xs:element ref="length"/>
    143             <xs:element ref="cyl-transform"/>
    144           </xs:choice>
    145           <xs:choice>
    146             <xs:element ref="base1"/>
    147             <xs:element ref="base2"/>
    148             <xs:element minOccurs="0" maxOccurs="unbounded" ref="transform"/>
    149           </xs:choice>
    150         </xs:choice>
    151         <xs:element ref="description"/>
    152         <xs:element ref="vMaterial"/>
    153       </xs:choice>
    154       <xs:attributeGroup ref="name-attribute"/>
    155     </xs:complexType>
    156   </xs:element>
    157   <xs:element name="ellipsoid">
    158     <xs:complexType>
    159       <xs:choice minOccurs="0" maxOccurs="unbounded">
    160         <xs:element name="radius">
    161           <xs:complexType>
    162             <xs:simpleContent>
    163               <xs:extension base="three-doubles-list">
    164                 <xs:attributeGroup ref="length-attribute"/>
    165               </xs:extension>
    166             </xs:simpleContent>
    167           </xs:complexType>
    168         </xs:element>
    169         <xs:element ref="vMaterial"/>
    170         <xs:element ref="transform"/>
    171       </xs:choice>
    172       <xs:attributeGroup ref="name-attribute"/>
    173     </xs:complexType>
    174   </xs:element>
    175   <xs:element name="faceSet">
    176     <xs:complexType>
    177       <xs:choice minOccurs="0" maxOccurs="unbounded">
    178         <xs:element ref="description"/>
    179         <xs:element ref="vertex_normals"/>
    180         <xs:element ref="vertices"/>
    181         <xs:element ref="facets"/>
    182         <xs:group ref="optional-content"/>
    183       </xs:choice>
    184       <xs:attribute name="name" type="xs:token"/>
    185     </xs:complexType>
    186   </xs:element>
    187   <xs:element name="facets" type="facets-content"/>
    188   <xs:simpleType name="facets-content">
    189     <xs:restriction base="integer-list"/>
    190   </xs:simpleType>
    191   <xs:element name="vertex_normals" type="vertex_normals-content"/>
    192   <xs:complexType name="vertex_normals-content">
    193     <xs:simpleContent>
    194       <xs:restriction base="xs:anyType">
    195         <xs:simpleType>
    196           <xs:restriction>
    197             <xs:simpleType>
    198               <xs:list>
    199                 <xs:simpleType>
    200                   <xs:union>
    201                     <xs:simpleType>
    202                       <xs:union memberTypes="xs:double xs:double xs:double"/>
    203                     </xs:simpleType>
    204                     <xs:simpleType>
    205                       <xs:union memberTypes="xs:double xs:double xs:double"/>
    206                     </xs:simpleType>
    207                     <xs:simpleType>
    208                       <xs:union memberTypes="xs:double xs:double xs:double"/>
    209                     </xs:simpleType>
    210                     <xs:simpleType>
    211                       <xs:union memberTypes="xs:double xs:double xs:double"/>
    212                     </xs:simpleType>
    213                   </xs:union>
    214                 </xs:simpleType>
    215               </xs:list>
    216             </xs:simpleType>
    217             <xs:minLength value="9"/>
    218           </xs:restriction>
    219         </xs:simpleType>
    220         <xs:attributeGroup ref="length-attribute"/>
    221       </xs:restriction>
    222     </xs:simpleContent>
    223   </xs:complexType>
    224   <xs:element name="vertices" type="vertices-content"/>
    225   <xs:complexType name="vertices-content">
    226     <xs:simpleContent>
    227       <xs:restriction base="xs:anyType">
    228         <xs:simpleType>
    229           <xs:restriction>
    230             <xs:simpleType>
    231               <xs:list>
    232                 <xs:simpleType>
    233                   <xs:union>
    234                     <xs:simpleType>
    235                       <xs:union memberTypes="xs:double xs:double xs:double"/>
    236                     </xs:simpleType>
    237                     <xs:simpleType>
    238                       <xs:union memberTypes="xs:double xs:double xs:double"/>
    239                     </xs:simpleType>
    240                     <xs:simpleType>
    241                       <xs:union memberTypes="xs:double xs:double xs:double"/>
    242                     </xs:simpleType>
    243                     <xs:simpleType>
    244                       <xs:union memberTypes="xs:double xs:double xs:double"/>
    245                     </xs:simpleType>
    246                   </xs:union>
    247                 </xs:simpleType>
    248               </xs:list>
    249             </xs:simpleType>
    250             <xs:minLength value="9"/>
    251           </xs:restriction>
    252         </xs:simpleType>
    253         <xs:attributeGroup ref="length-attribute"/>
    254       </xs:restriction>
    255     </xs:simpleContent>
    256   </xs:complexType>
    257   <xs:element name="tube" type="tube-content"/>
    258   <xs:complexType name="tube-content">
    259     <xs:choice minOccurs="0" maxOccurs="unbounded">
    260       <xs:element ref="spine"/>
    261       <xs:element ref="radius"/>
    262       <xs:group ref="optional-content"/>
    263     </xs:choice>
    264     <xs:attributeGroup ref="name-attribute"/>
    265   </xs:complexType>
    266   <xs:element name="spine" type="spine-content"/>
    267   <xs:complexType name="spine-content">
    268     <xs:simpleContent>
    269       <xs:restriction base="xs:anyType">
    270         <xs:simpleType>
    271           <xs:restriction>
    272             <xs:simpleType>
    273               <xs:list>
    274                 <xs:simpleType>
    275                   <xs:union>
    276                     <xs:simpleType>
    277                       <xs:union memberTypes="xs:double xs:double xs:double"/>
    278                     </xs:simpleType>
    279                     <xs:simpleType>
    280                       <xs:union memberTypes="xs:double xs:double xs:double"/>
    281                     </xs:simpleType>
    282                   </xs:union>
    283                 </xs:simpleType>
    284               </xs:list>
    285             </xs:simpleType>
    286             <xs:minLength value="6"/>
    287           </xs:restriction>
    288         </xs:simpleType>
    289         <xs:attributeGroup ref="length-attribute"/>
    290       </xs:restriction>
    291     </xs:simpleContent>
    292   </xs:complexType>
    293   <xs:element name="sphere" type="sphere-content"/>
    294   <xs:complexType name="sphere-content">
    295     <xs:choice minOccurs="0" maxOccurs="unbounded">
    296       <xs:element ref="radius"/>
    297       <xs:element ref="position"/>
    298     </xs:choice>
    299     <xs:attributeGroup ref="name-attribute"/>
    300   </xs:complexType>
    301   <xs:element name="position" type="position-content"/>
    302   <xs:complexType name="position-content">
    303     <xs:simpleContent>
    304       <xs:extension base="three-doubles-list">
    305         <xs:attributeGroup ref="length-attribute"/>
    306       </xs:extension>
    307     </xs:simpleContent>
    308   </xs:complexType>
    309   <xs:element name="box" type="box-content"/>
    310   <xs:complexType name="box-content">
    311     <xs:choice minOccurs="0" maxOccurs="unbounded">
    312       <xs:element ref="size"/>
    313       <xs:choice>
    314         <xs:element ref="position"/>
    315         <xs:element ref="transform"/>
    316       </xs:choice>
    317     </xs:choice>
    318     <xs:attributeGroup ref="name-attribute"/>
    319   </xs:complexType>
    320   <xs:element name="size" type="size-content"/>
    321   <xs:complexType name="size-content">
    322     <xs:simpleContent>
    323       <xs:extension base="three-doubles-list">
    324         <xs:attributeGroup ref="length-attribute"/>
    325       </xs:extension>
    326     </xs:simpleContent>
    327   </xs:complexType>
    328   <xs:element name="extrusion" type="extrusion-content"/>
    329   <xs:complexType name="extrusion-content">
    330     <xs:choice minOccurs="0" maxOccurs="unbounded">
    331       <xs:element ref="spine"/>
    332       <xs:element ref="scale"/>
    333       <xs:element ref="crossSection"/>
    334       <xs:group ref="optional-content"/>
    335     </xs:choice>
    336     <xs:attributeGroup ref="name-attribute"/>
    337   </xs:complexType>
    338   <xs:element name="scale" type="scale-content"/>
    339   <xs:simpleType name="scale-content">
    340     <xs:restriction>
    341       <xs:simpleType>
    342         <xs:list>
    343           <xs:simpleType>
    344             <xs:union memberTypes="xs:double xs:double"/>
    345           </xs:simpleType>
    346         </xs:list>
    347       </xs:simpleType>
    348       <xs:minLength value="2"/>
    349     </xs:restriction>
    350   </xs:simpleType>
    351   <xs:element name="crossSection" type="crossSection-content"/>
    352   <xs:complexType name="crossSection-content">
    353     <xs:simpleContent>
    354       <xs:restriction base="xs:anyType">
    355         <xs:simpleType>
    356           <xs:restriction>
    357             <xs:simpleType>
    358               <xs:list>
    359                 <xs:simpleType>
    360                   <xs:union>
    361                     <xs:simpleType>
    362                       <xs:union memberTypes="xs:double xs:double xs:double"/>
    363                     </xs:simpleType>
    364                     <xs:simpleType>
    365                       <xs:union memberTypes="xs:double xs:double xs:double"/>
    366                     </xs:simpleType>
    367                     <xs:simpleType>
    368                       <xs:union memberTypes="xs:double xs:double xs:double"/>
    369                     </xs:simpleType>
    370                   </xs:union>
    371                 </xs:simpleType>
    372               </xs:list>
    373             </xs:simpleType>
    374             <xs:minLength value="9"/>
    375           </xs:restriction>
    376         </xs:simpleType>
    377         <xs:attributeGroup ref="length-attribute"/>
    378         <xs:attributeGroup ref="closed-attribute"/>
    379       </xs:restriction>
    380     </xs:simpleContent>
    381   </xs:complexType>
    382   <xs:attributeGroup name="closed-attribute">
    383     <xs:attribute name="closed" use="required" type="xs:boolean"/>
    384   </xs:attributeGroup>
    385   <xs:group name="optional-content">
    386     <xs:annotation>
    387       <xs:documentation>global #############</xs:documentation>
    388     </xs:annotation>
    389     <xs:sequence>
    390       <xs:choice minOccurs="0" maxOccurs="unbounded">
    391         <xs:element ref="transform"/>
    392         <xs:element ref="vMaterial"/>
    393       </xs:choice>
    394     </xs:sequence>
    395   </xs:group>
    396   <xs:element name="description" type="xs:string"/>
    397   <xs:attributeGroup name="length-attribute">
    398     <xs:attributeGroup ref="dimension-attribute"/>
    399     <xs:attributeGroup ref="Length-attribute"/>
    400   </xs:attributeGroup>
    401   <xs:attributeGroup name="dimension-attribute">
    402     <xs:attribute name="dimension" use="required">
    403       <xs:simpleType>
    404         <xs:restriction base="xs:token">
    405           <xs:enumeration value="L"/>
    406           <xs:enumeration value="F"/>
    407           <xs:enumeration value="M"/>
    408           <xs:enumeration value="T"/>
    409           <xs:enumeration value="F/L"/>
    410           <xs:enumeration value="F/LL"/>
    411           <xs:enumeration value="F/LLL"/>
    412           <xs:enumeration value="F/T"/>
    413           <xs:enumeration value="F/TT"/>
    414           <xs:enumeration value="F/TTT"/>
    415           <xs:enumeration value="L/T"/>
    416           <xs:enumeration value="L/TT"/>
    417           <xs:enumeration value="LLLLL"/>
    418           <xs:enumeration value="D/D"/>
    419         </xs:restriction>
    420       </xs:simpleType>
    421     </xs:attribute>
    422   </xs:attributeGroup>
    423   <xs:attributeGroup name="Length-attribute">
    424     <xs:attribute name="Length" use="required">
    425       <xs:simpleType>
    426         <xs:restriction base="xs:token">
    427           <xs:enumeration value="meter"/>
    428           <xs:enumeration value="m"/>
    429           <xs:enumeration value="foot"/>
    430           <xs:enumeration value="f"/>
    431           <xs:enumeration value="inch"/>
    432           <xs:enumeration value="in"/>
    433           <xs:enumeration value="centimeter"/>
    434           <xs:enumeration value="cm"/>
    435           <xs:enumeration value="decimeter"/>
    436           <xs:enumeration value="dm"/>
    437           <xs:enumeration value="millimeter"/>
    438           <xs:enumeration value="mm"/>
    439           <xs:enumeration value="degree"/>
    440         </xs:restriction>
    441       </xs:simpleType>
    442     </xs:attribute>
    443   </xs:attributeGroup>
    444   <xs:attributeGroup name="Time-attribute">
    445     <xs:attribute name="Time" use="required">
    446       <xs:simpleType>
    447         <xs:restriction base="xs:token">
    448           <xs:enumeration value="second"/>
    449           <xs:enumeration value="s"/>
    450           <xs:enumeration value="sec"/>
    451           <xs:enumeration value="minute"/>
    452           <xs:enumeration value="min"/>
    453           <xs:enumeration value="hour"/>
    454           <xs:enumeration value="hr"/>
    455         </xs:restriction>
    456       </xs:simpleType>
    457     </xs:attribute>
    458   </xs:attributeGroup>
    459   <xs:attributeGroup name="Force-attribute">
    460     <xs:attribute name="Force" use="required">
    461       <xs:simpleType>
    462         <xs:restriction base="xs:token">
    463           <xs:enumeration value="newton"/>
    464           <xs:enumeration value="n"/>
    465           <xs:enumeration value="pound"/>
    466           <xs:enumeration value="grain"/>
    467         </xs:restriction>
    468       </xs:simpleType>
    469     </xs:attribute>
    470   </xs:attributeGroup>
    471   <xs:attributeGroup name="Mass-attribute">
    472     <xs:attribute name="Mass" use="required">
    473       <xs:simpleType>
    474         <xs:restriction base="xs:token">
    475           <xs:enumeration value="kilogram"/>
    476           <xs:enumeration value="kg"/>
    477           <xs:enumeration value="gram"/>
    478         </xs:restriction>
    479       </xs:simpleType>
    480     </xs:attribute>
    481   </xs:attributeGroup>
    482   <xs:attributeGroup name="Dimensionless-attribute">
    483     <xs:attribute name="Dimensionless" use="required">
    484       <xs:simpleType>
    485         <xs:restriction base="xs:token">
    486           <xs:enumeration value="radian"/>
    487           <xs:enumeration value="rad"/>
    488         </xs:restriction>
    489       </xs:simpleType>
    490     </xs:attribute>
    491   </xs:attributeGroup>
    492   <xs:simpleType name="three-doubles-list">
    493     <xs:restriction>
    494       <xs:simpleType>
    495         <xs:list>
    496           <xs:simpleType>
    497             <xs:union memberTypes="xs:double xs:double xs:double"/>
    498           </xs:simpleType>
    499         </xs:list>
    500       </xs:simpleType>
    501       <xs:length value="3"/>
    502     </xs:restriction>
    503   </xs:simpleType>
    504   <xs:simpleType name="integer-list">
    505     <xs:restriction>
    506       <xs:simpleType>
    507         <xs:list>
    508           <xs:simpleType>
    509             <xs:union memberTypes="xs:integer xs:integer"/>
    510           </xs:simpleType>
    511         </xs:list>
    512       </xs:simpleType>
    513       <xs:minLength value="1"/>
    514     </xs:restriction>
    515   </xs:simpleType>
    516   <xs:attributeGroup name="name-attribute">
    517     <xs:attribute name="name" use="required" type="xs:token"/>
    518   </xs:attributeGroup>
    519   <xs:attributeGroup name="description-attribute">
    520     <xs:attribute name="description" use="required"/>
    521   </xs:attributeGroup>
    522   <xs:element name="vMaterial">
    523     <xs:complexType>
    524       <xs:sequence>
    525         <xs:element minOccurs="0" ref="diffuseColor"/>
    526         <xs:element minOccurs="0" ref="emissiveColor"/>
    527         <xs:element minOccurs="0" ref="specularColor"/>
    528         <xs:element minOccurs="0" ref="shininess"/>
    529         <xs:element minOccurs="0" ref="transparency"/>
    530         <xs:element minOccurs="0" ref="ambientIntensity"/>
    531         <xs:element minOccurs="0" ref="DEF"/>
    532         <xs:element minOccurs="0" ref="USE"/>
    533       </xs:sequence>
    534     </xs:complexType>
    535   </xs:element>
    536   <xs:element name="diffuseColor" type="xs:string"/>
    537   <xs:element name="emissiveColor" type="xs:string"/>
    538   <xs:element name="specularColor" type="xs:string"/>
    539   <xs:element name="shininess" type="xs:string"/>
    540   <xs:element name="transparency" type="xs:string"/>
    541   <xs:element name="ambientIntensity" type="xs:string"/>
    542   <xs:element name="DEF" type="xs:string"/>
    543   <xs:element name="USE" type="xs:string"/>
    544 </xs:schema>
    545