Subversion Repositories oidplus

Rev

View as "text/xsd" | Blame | Last modification | View Log | RSS feed

  1. <?xml version="1.0"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  3.            xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
  4.            xmlns:ns1="urn:ietf:id:draft-viathinksoft-oidip-07"
  5.            targetNamespace="urn:ietf:id:draft-viathinksoft-oidip-07"
  6.            elementFormDefault="qualified"
  7.            attributeFormDefault="unqualified">
  8. <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
  9.            schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
  10.  
  11.         <xs:element name="root">
  12.                 <xs:complexType>
  13.                         <xs:sequence>
  14.                                 <xs:element name="oidip"   minOccurs="1" maxOccurs="1"         type="ns1:OidIpType"/>
  15.                                 <xs:element                minOccurs="0" maxOccurs="1"         ref="ds:Signature"/>
  16.                         </xs:sequence>
  17.                 </xs:complexType>
  18.         </xs:element>
  19.  
  20.         <xs:complexType name="OidIpType">
  21.                 <xs:sequence>
  22.                         <xs:element name="querySection"    minOccurs="1" maxOccurs="1"         type="ns1:QuerySectionType"/>
  23.                         <xs:element name="objectSection"   minOccurs="0" maxOccurs="1"         type="ns1:ObjectSectionType"/>
  24.                         <xs:element name="raSection"       minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  25.                         <xs:element name="ra1Section"      minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  26.                         <xs:element name="ra2Section"      minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  27.                         <xs:element name="ra3Section"      minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  28.                         <xs:element name="ra4Section"      minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  29.                         <xs:element name="ra5Section"      minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  30.                         <xs:element name="ra6Section"      minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  31.                         <xs:element name="ra7Section"      minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  32.                         <xs:element name="ra8Section"      minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  33.                         <xs:element name="ra9Section"      minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  34.                         <xs:element name="ra10Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  35.                         <xs:element name="ra11Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  36.                         <xs:element name="ra12Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  37.                         <xs:element name="ra13Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  38.                         <xs:element name="ra14Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  39.                         <xs:element name="ra15Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  40.                         <xs:element name="ra16Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  41.                         <xs:element name="ra17Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  42.                         <xs:element name="ra18Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  43.                         <xs:element name="ra19Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  44.                         <xs:element name="ra20Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  45.                         <xs:element name="ra21Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  46.                         <xs:element name="ra22Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  47.                         <xs:element name="ra23Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  48.                         <xs:element name="ra24Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  49.                         <xs:element name="ra25Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  50.                         <xs:element name="ra26Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  51.                         <xs:element name="ra27Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  52.                         <xs:element name="ra28Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  53.                         <xs:element name="ra29Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  54.                         <xs:element name="ra30Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  55.                         <xs:element name="ra31Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  56.                         <xs:element name="ra32Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  57.                         <xs:element name="ra33Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  58.                         <xs:element name="ra34Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  59.                         <xs:element name="ra35Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  60.                         <xs:element name="ra36Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  61.                         <xs:element name="ra37Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  62.                         <xs:element name="ra38Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  63.                         <xs:element name="ra39Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  64.                         <xs:element name="ra40Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  65.                         <xs:element name="ra41Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  66.                         <xs:element name="ra42Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  67.                         <xs:element name="ra43Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  68.                         <xs:element name="ra44Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  69.                         <xs:element name="ra45Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  70.                         <xs:element name="ra46Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  71.                         <xs:element name="ra47Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  72.                         <xs:element name="ra48Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  73.                         <xs:element name="ra49Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  74.                         <xs:element name="ra50Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  75.                         <xs:element name="ra51Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  76.                         <xs:element name="ra52Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  77.                         <xs:element name="ra53Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  78.                         <xs:element name="ra54Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  79.                         <xs:element name="ra55Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  80.                         <xs:element name="ra56Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  81.                         <xs:element name="ra57Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  82.                         <xs:element name="ra58Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  83.                         <xs:element name="ra59Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  84.                         <xs:element name="ra60Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  85.                         <xs:element name="ra61Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  86.                         <xs:element name="ra62Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  87.                         <xs:element name="ra63Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  88.                         <xs:element name="ra64Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  89.                         <xs:element name="ra65Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  90.                         <xs:element name="ra66Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  91.                         <xs:element name="ra67Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  92.                         <xs:element name="ra68Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  93.                         <xs:element name="ra69Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  94.                         <xs:element name="ra70Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  95.                         <xs:element name="ra71Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  96.                         <xs:element name="ra72Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  97.                         <xs:element name="ra73Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  98.                         <xs:element name="ra74Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  99.                         <xs:element name="ra75Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  100.                         <xs:element name="ra76Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  101.                         <xs:element name="ra77Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  102.                         <xs:element name="ra78Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  103.                         <xs:element name="ra79Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  104.                         <xs:element name="ra80Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  105.                         <xs:element name="ra81Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  106.                         <xs:element name="ra82Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  107.                         <xs:element name="ra83Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  108.                         <xs:element name="ra84Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  109.                         <xs:element name="ra85Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  110.                         <xs:element name="ra86Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  111.                         <xs:element name="ra87Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  112.                         <xs:element name="ra88Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  113.                         <xs:element name="ra89Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  114.                         <xs:element name="ra90Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  115.                         <xs:element name="ra91Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  116.                         <xs:element name="ra92Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  117.                         <xs:element name="ra93Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  118.                         <xs:element name="ra94Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  119.                         <xs:element name="ra95Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  120.                         <xs:element name="ra96Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  121.                         <xs:element name="ra97Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  122.                         <xs:element name="ra98Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  123.                         <xs:element name="ra99Section"     minOccurs="0" maxOccurs="1"         type="ns1:RaSectionType"/>
  124.                         <xs:any     namespace="##other"    minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
  125.                 </xs:sequence>
  126.         </xs:complexType>
  127.  
  128.         <xs:simpleType name="DateTimeRef">
  129.                 <xs:restriction base="xs:string">
  130.                         <xs:pattern value="^\d{4}(-(0[1-9]|1[0-2])(-(0[1-9]|1\d|2\d|3[0-1])( [0-5]\d:[0-5]\d(:[0-5]\d)?( [+-][0-5]\d[0-5]\d)?)?)?)?$"/>
  131.                 </xs:restriction>
  132.         </xs:simpleType>
  133.  
  134.         <xs:complexType name="QuerySectionType">
  135.                 <xs:sequence>
  136.                         <xs:element name="query"           minOccurs="1" maxOccurs="1"         type="ns1:InputQueryType"/>
  137.                         <xs:element name="result"          minOccurs="1" maxOccurs="1"         type="ns1:QueryResultEnumType"/>
  138.                         <xs:element name="distance"        minOccurs="0" maxOccurs="1"         type="xs:integer"/>
  139.                         <xs:element name="message"         minOccurs="0" maxOccurs="1"         type="xs:string"/>
  140.                         <xs:element name="lang"            minOccurs="0" maxOccurs="1"         type="xs:string"/>
  141.                         <xs:any     namespace="##other"    minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
  142.                 </xs:sequence>
  143.         </xs:complexType>
  144.  
  145.         <xs:simpleType name="InputQueryType">
  146.                 <xs:restriction base="xs:string">
  147.                         <!-- Note: The ABNF definition is more accurate -->
  148.                         <xs:pattern value="[a-z0-9]+:(.*)"/>
  149.                 </xs:restriction>
  150.         </xs:simpleType>
  151.  
  152.         <xs:simpleType name="QueryResultEnumType">
  153.                 <xs:restriction base="xs:string">
  154.                         <xs:enumeration value="Found"/>
  155.                         <xs:enumeration value="Not found; superior object found"/>
  156.                         <xs:enumeration value="Not found"/>
  157.                         <xs:enumeration value="Service error"/>
  158.                 </xs:restriction>
  159.         </xs:simpleType>
  160.  
  161.         <xs:complexType name="ObjectSectionType">
  162.                 <xs:sequence>
  163.                         <xs:element name="object"          minOccurs="1" maxOccurs="1"         type="ns1:ObjectIdType"/>
  164.                         <xs:element name="status"          minOccurs="1" maxOccurs="1"         type="ns1:ObjectStatusEnumType"/>
  165.                         <xs:element name="lang"            minOccurs="0" maxOccurs="1"         type="xs:string"/>
  166.                         <xs:element name="name"            minOccurs="0" maxOccurs="1"         type="xs:string"/>
  167.                         <xs:element name="description"     minOccurs="0" maxOccurs="1"         type="xs:string"/>
  168.                         <xs:element name="information"     minOccurs="0" maxOccurs="1"         type="xs:string"/>
  169.                         <xs:element name="url"             minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
  170.                         <xs:element name="asn1-notation"   minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
  171.                         <xs:element name="iri-notation"    minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
  172.                         <xs:element name="identifier"      minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
  173.                         <xs:element name="standardized-id" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
  174.                         <xs:element name="unicode-label"   minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
  175.                         <xs:element name="long-arc"        minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
  176.                         <xs:element name="oidip-service"   minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
  177.                         <xs:any     namespace="##other"    minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
  178.                         <xs:element name="attribute"       minOccurs="0" maxOccurs="unbounded" type="ns1:ObjectAttributeEnumType"/>
  179.                         <xs:element name="parent"          minOccurs="0" maxOccurs="1"         type="xs:string"/>
  180.                         <xs:element name="subordinate"     minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
  181.                         <xs:element name="created"         minOccurs="0" maxOccurs="1"         type="ns1:DateTimeRef"/>
  182.                         <xs:element name="updated"         minOccurs="0" maxOccurs="1"         type="ns1:DateTimeRef"/>
  183.                 </xs:sequence>
  184.         </xs:complexType>
  185.  
  186.         <xs:simpleType name="ObjectIdType">
  187.                 <xs:restriction base="xs:string">
  188.                         <!-- Note: The ABNF definition is more accurate -->
  189.                         <xs:pattern value="[a-z0-9]+:(.*)"/>
  190.                 </xs:restriction>
  191.         </xs:simpleType>
  192.  
  193.         <xs:simpleType name="ObjectStatusEnumType">
  194.                 <xs:restriction base="xs:string">
  195.                         <xs:enumeration value="Information available"/>
  196.                         <xs:enumeration value="Information partially available"/>
  197.                         <xs:enumeration value="Information unavailable"/>
  198.                 </xs:restriction>
  199.         </xs:simpleType>
  200.  
  201.         <xs:simpleType name="ObjectAttributeEnumType">
  202.                 <xs:restriction base="xs:string">
  203.                         <xs:enumeration value="confidential"/>
  204.                         <xs:enumeration value="draft"/>
  205.                         <xs:enumeration value="frozen"/>
  206.                         <xs:enumeration value="leaf"/>
  207.                         <xs:enumeration value="no-identifiers"/>
  208.                         <xs:enumeration value="no-unicode-labels"/>
  209.                         <xs:enumeration value="retired"/>
  210.                 </xs:restriction>
  211.         </xs:simpleType>
  212.  
  213.         <xs:complexType name="RaSectionType">
  214.                 <xs:sequence>
  215.                         <!-- Note: "ra" keeps its name, even in Ra1SectionType et al. -->
  216.                         <xs:element name="ra"              minOccurs="1" maxOccurs="1"         type="xs:string"/>
  217.                         <xs:element name="status"          minOccurs="1" maxOccurs="1"         type="ns1:RaStatusEnumType"/>
  218.                         <xs:element name="lang"            minOccurs="0" maxOccurs="1"         type="xs:string"/>
  219.                         <xs:element name="contact-name"    minOccurs="0" maxOccurs="1"         type="xs:string"/>
  220.                         <xs:element name="address"         minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
  221.                         <xs:element name="phone"           minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
  222.                         <xs:element name="mobile"          minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
  223.                         <xs:element name="fax"             minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
  224.                         <xs:element name="email"           minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
  225.                         <xs:element name="url"             minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
  226.                         <xs:any     namespace="##other"    minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
  227.                         <xs:element name="attribute"       minOccurs="0" maxOccurs="unbounded" type="ns1:RaAttributeEnumType"/>
  228.                         <xs:element name="created"         minOccurs="0" maxOccurs="1"         type="ns1:DateTimeRef"/>
  229.                         <xs:element name="updated"         minOccurs="0" maxOccurs="1"         type="ns1:DateTimeRef"/>
  230.                 </xs:sequence>
  231.         </xs:complexType>
  232.  
  233.         <xs:simpleType name="RaStatusEnumType">
  234.                 <xs:restriction base="xs:string">
  235.                         <xs:enumeration value="Information available"/>
  236.                         <xs:enumeration value="Information partially available"/>
  237.                         <xs:enumeration value="Information unavailable"/>
  238.                 </xs:restriction>
  239.         </xs:simpleType>
  240.  
  241.         <xs:simpleType name="RaAttributeEnumType">
  242.                 <xs:restriction base="xs:string">
  243.                         <xs:enumeration value="confidential"/>
  244.                         <xs:enumeration value="retired"/>
  245.                 </xs:restriction>
  246.         </xs:simpleType>
  247.  
  248. </xs:schema>
  249.