diff options
Diffstat (limited to 'myrpki.rototill/schema.rng')
-rw-r--r-- | myrpki.rototill/schema.rng | 197 |
1 files changed, 197 insertions, 0 deletions
diff --git a/myrpki.rototill/schema.rng b/myrpki.rototill/schema.rng new file mode 100644 index 00000000..6f37e37a --- /dev/null +++ b/myrpki.rototill/schema.rng @@ -0,0 +1,197 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + $Id: schema.rnc 2839 2009-10-27 18:53:00Z sra $ + + RelaxNG Schema for MyRPKI XML messages + + 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.hactrn.net/uris/rpki/myrpki/" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <define name="base64"> + <data type="base64Binary"> + <param name="maxLength">512000</param> + </data> + </define> + <define name="object_handle"> + <data type="string"> + <param name="maxLength">255</param> + <param name="pattern">[\-_A-Za-z0-9]*</param> + </data> + </define> + <define name="pubd_handle"> + <data type="string"> + <param name="maxLength">255</param> + <param name="pattern">[\-_A-Za-z0-9/]*</param> + </data> + </define> + <define name="uri"> + <data type="anyURI"> + <param name="maxLength">4096</param> + </data> + </define> + <define name="asn_list"> + <data type="string"> + <param name="maxLength">512000</param> + <param name="pattern">[\-,0-9]*</param> + </data> + </define> + <define name="ipv4_list"> + <data type="string"> + <param name="maxLength">512000</param> + <param name="pattern">[\-,0-9/.]*</param> + </data> + </define> + <define name="ipv6_list"> + <data type="string"> + <param name="maxLength">512000</param> + <param name="pattern">[\-,0-9/:a-fA-F]*</param> + </data> + </define> + <start> + <element name="myrpki"> + <attribute name="version"> + <data type="positiveInteger"> + <param name="maxInclusive">1</param> + </data> + </attribute> + <attribute name="handle"> + <ref name="object_handle"/> + </attribute> + <attribute name="repository_handle"> + <ref name="pubd_handle"/> + </attribute> + <zeroOrMore> + <ref name="roa_request_elt"/> + </zeroOrMore> + <zeroOrMore> + <ref name="child_elt"/> + </zeroOrMore> + <zeroOrMore> + <ref name="parent_elt"/> + </zeroOrMore> + <optional> + <ref name="bpki_ca_certificate_elt"/> + </optional> + <optional> + <ref name="bpki_crl_elt"/> + </optional> + <optional> + <ref name="bpki_repository_certificate_elt"/> + </optional> + <optional> + <ref name="bpki_bsc_certificate_elt"/> + </optional> + <optional> + <ref name="bpki_bsc_pkcs10_elt"/> + </optional> + </element> + </start> + <define name="roa_request_elt"> + <element name="roa_request"> + <attribute name="asn"> + <data type="positiveInteger"/> + </attribute> + <attribute name="v4"> + <ref name="ipv4_list"/> + </attribute> + <attribute name="v6"> + <ref name="ipv6_list"/> + </attribute> + </element> + </define> + <define name="child_elt"> + <element name="child"> + <attribute name="handle"> + <ref name="object_handle"/> + </attribute> + <attribute name="valid_until"> + <data type="dateTime"> + <param name="pattern">.*Z</param> + </data> + </attribute> + <optional> + <attribute name="asns"> + <ref name="asn_list"/> + </attribute> + </optional> + <optional> + <attribute name="v4"> + <ref name="ipv4_list"/> + </attribute> + </optional> + <optional> + <attribute name="v6"> + <ref name="ipv6_list"/> + </attribute> + </optional> + <optional> + <element name="bpki_certificate"> + <ref name="base64"/> + </element> + </optional> + </element> + </define> + <define name="parent_elt"> + <element name="parent"> + <attribute name="handle"> + <ref name="object_handle"/> + </attribute> + <optional> + <attribute name="service_uri"> + <ref name="uri"/> + </attribute> + </optional> + <optional> + <attribute name="myhandle"> + <ref name="object_handle"/> + </attribute> + </optional> + <optional> + <attribute name="sia_base"> + <ref name="uri"/> + </attribute> + </optional> + <optional> + <element name="bpki_cms_certificate"> + <ref name="base64"/> + </element> + </optional> + <optional> + <element name="bpki_https_certificate"> + <ref name="base64"/> + </element> + </optional> + </element> + </define> + <define name="bpki_ca_certificate_elt"> + <element name="bpki_ca_certificate"> + <ref name="base64"/> + </element> + </define> + <define name="bpki_crl_elt"> + <element name="bpki_crl"> + <ref name="base64"/> + </element> + </define> + <define name="bpki_repository_certificate_elt"> + <element name="bpki_repository_certificate"> + <ref name="base64"/> + </element> + </define> + <define name="bpki_bsc_certificate_elt"> + <element name="bpki_bsc_certificate"> + <ref name="base64"/> + </element> + </define> + <define name="bpki_bsc_pkcs10_elt"> + <element name="bpki_bsc_pkcs10"> + <ref name="base64"/> + </element> + </define> +</grammar> +<!-- + Local Variables: + indent-tabs-mode: nil + End: +--> |