aboutsummaryrefslogblamecommitdiff
path: root/rpkid/up-down-schema.rng
blob: 50d9eff06b614fe650513689f6893a959216c0a9 (plain) (tree)
generated by cgit v1.2.3 (git 2.25.1) at 2025-07-13 02:01:09 +0000
44'>44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
                                      
    
                                                         
  
                                                                 
  
                                                                      
   
















                                                                                                                                                                    



























































                                              
                                              
                  

                                                
                                                 



                                                
                                                   



                                                
                                                         
                  





                                                
                                             
                              
                                                
                                                    




                                     
                                                  
                      


                                                      
                                                       





                                                      
                                                         





                                                      
                                                               

                        





















                                                  
                                                   





                                                  
                                                     





                                                  
                                                           




































                                                          









                                              



                       
<?xml version="1.0" encoding="UTF-8"?>
<!--
  $Id: up-down-schema.rnc 1798 2008-05-17 08:21:50Z sra $
  
  RelaxNG Scheme for up-down protocol, extracted from APNIC Wiki.
  
  libxml2 (including xmllint) only groks the XML syntax of RelaxNG, so
  run the compact syntax through trang to get XML syntax.
-->
<grammar ns="http://www.apnic.net/specs/rescerts/up-down/" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  <start>
    <element name="message">
      <attribute name="version">
        <data type="positiveInteger">
          <param name="maxInclusive">1</param>
        </data>
      </attribute>
      <attribute name="sender">
        <data type="token">
          <param name="maxLength">1024</param>
        </data>
      </attribute>
      <attribute name="recipient">
        <data type="token">
          <param name="maxLength">1024</param>
        </data>
      </attribute>
      <ref name="payload"/>
    </element>
  </start>
  <define name="payload" combine="choice">
    <attribute name="type">
      <value>list</value>
    </attribute>
    <ref name="list_request"/>
  </define>
  <define name="payload" combine="choice">
    <attribute name="type">
      <value>list_response</value>
    </attribute>
    <ref name="list_response"/>
  </define>
  <define name="payload" combine="choice">
    <attribute name="type">
      <value>issue</value>
    </attribute>
    <ref name="issue_request"/>
  </define>
  <define name="payload" combine="choice">
    <attribute name="type">
      <value>issue_response</value>
    </attribute>
    <ref name="issue_response"/>
  </define>
  <define name="payload" combine="choice">
    <attribute name="type">
      <value>revoke</value>
    </attribute>
    <ref name="revoke_request"/>
  </define>
  <define name="payload" combine="choice">
    <attribute name="type">
      <value>revoke_response</value>
    </attribute>
    <ref name="revoke_response"/>
  </define>
  <define name="payload" combine="choice">
    <attribute name="type">
      <value>error_response</value>
    </attribute>
    <ref name="error_response"/>
  </define>
  <define name="list_request">
    <empty/>
  </define>
  <define name="list_response">
    <zeroOrMore>
      <ref name="class"/>
    </zeroOrMore>
  </define>
  <define name="class">
    <element name="class">
      <attribute name="class_name">
        <data type="token">
          <param name="maxLength">1024</param>
        </data>
      </attribute>
      <attribute name="cert_url">
        <data type="string">
          <param name="maxLength">4096</param>
        </data>
      </attribute>
      <attribute name="resource_set_as">
        <data type="string">
          <param name="maxLength">512000</param>
          <param name="pattern">[\-,0-9]*</param>
        </data>
      </attribute>
      <attribute name="resource_set_ipv4">
        <data type="string">
          <param name="maxLength">512000</param>
          <param name="pattern">[\-,/.0-9]*</param>
        </data>
      </attribute>
      <attribute name="resource_set_ipv6">
        <data type="string">
          <param name="maxLength">512000</param>
          <param name="pattern">[\-,/:0-9a-fA-F]*</param>
        </data>
      </attribute>
      <optional>
        <attribute name="resource_set_notafter">
          <data type="dateTime">
            <param name="pattern">.*Z</param>
          </data>
        </attribute>
      </optional>
      <optional>
        <attribute name="suggested_sia_head">
          <data type="anyURI">
            <param name="maxLength">1024</param>
            <param name="pattern">rsync://.+</param>
          </data>
        </attribute>
      </optional>
      <zeroOrMore>
        <element name="certificate">
          <attribute name="cert_url">
            <data type="string">
              <param name="maxLength">4096</param>
            </data>
          </attribute>
          <optional>
            <attribute name="req_resource_set_as">
              <data type="string">
                <param name="maxLength">512000</param>
                <param name="pattern">[\-,0-9]*</param>
              </data>
            </attribute>
          </optional>
          <optional>
            <attribute name="req_resource_set_ipv4">
              <data type="string">
                <param name="maxLength">512000</param>
                <param name="pattern">[\-,/.0-9]*</param>
              </data>
            </attribute>
          </optional>
          <optional>
            <attribute name="req_resource_set_ipv6">
              <data type="string">
                <param name="maxLength">512000</param>
                <param name="pattern">[\-,/:0-9a-fA-F]*</param>
              </data>
            </attribute>
          </optional>
          <data type="base64Binary">
            <param name="maxLength">512000</param>
          </data>
        </element>
      </zeroOrMore>
      <element name="issuer">
        <data type="base64Binary">
          <param name="maxLength">512000</param>
        </data>
      </element>
    </element>
  </define>
  <define name="issue_request">
    <element name="request">
      <attribute name="class_name">
        <data type="token">
          <param name="maxLength">1024</param>
        </data>
      </attribute>
      <optional>
        <attribute name="req_resource_set_as">
          <data type="string">
            <param name="maxLength">512000</param>
            <param name="pattern">[\-,0-9]*</param>
          </data>
        </attribute>
      </optional>
      <optional>
        <attribute name="req_resource_set_ipv4">
          <data type="string">
            <param name="maxLength">512000</param>
            <param name="pattern">[\-,/.0-9]*</param>
          </data>
        </attribute>
      </optional>
      <optional>
        <attribute name="req_resource_set_ipv6">
          <data type="string">
            <param name="maxLength">512000</param>
            <param name="pattern">[\-,/:0-9a-fA-F]*</param>
          </data>
        </attribute>
      </optional>
      <data type="base64Binary">
        <param name="maxLength">512000</param>
      </data>
    </element>
  </define>
  <define name="issue_response">
    <ref name="class"/>
  </define>
  <define name="revoke_request">
    <ref name="revocation"/>
  </define>
  <define name="revoke_response">
    <ref name="revocation"/>
  </define>
  <define name="revocation">
    <element name="key">
      <attribute name="class_name">
        <data type="token">
          <param name="maxLength">1024</param>
        </data>
      </attribute>
      <attribute name="ski">
        <data type="token">
          <param name="maxLength">1024</param>
        </data>
      </attribute>
    </element>
  </define>
  <define name="error_response">
    <element name="status">
      <data type="positiveInteger">
        <param name="maxInclusive">999999999999999</param>
      </data>
    </element>
    <optional>
      <element name="description">
        <attribute name="xml:lang">
          <data type="language"/>
        </attribute>
        <data type="string">
          <param name="maxLength">1024</param>
        </data>
      </element>
    </optional>
  </define>
</grammar>
<!--
  Local Variables:
  indent-tabs-mode: nil
  End:
-->