diff options
-rw-r--r-- | myrpki/myrpki.rng | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/myrpki/myrpki.rng b/myrpki/myrpki.rng new file mode 100644 index 00000000..09182fa9 --- /dev/null +++ b/myrpki/myrpki.rng @@ -0,0 +1,116 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + $Id: myrpki.rnc 2524 2009-06-16 03:30:14Z 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="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> + <zeroOrMore> + <ref name="roa_request"/> + </zeroOrMore> + <zeroOrMore> + <ref name="child"/> + </zeroOrMore> + <optional> + <ref name="bpki_ca_certificate"/> + </optional> + <optional> + <ref name="bpki_ee_certificate"/> + </optional> + </element> + </start> + <define name="roa_request"> + <element name="roa_request"> + <attribute name="asn"> + <data type="positiveInteger"/> + </attribute> + <attribute name="prefixes"> + <ref name="ipv4_list"/> + </attribute> + </element> + </define> + <define name="child"> + <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="prefixes"> + <ref name="ipv4_list"/> + </attribute> + </optional> + </element> + </define> + <define name="bpki_ca_certificate"> + <element name="bpki_ca_certificate"> + <ref name="base64"/> + </element> + </define> + <define name="bpki_ee_certificate"> + <element name="bpki_ee_certificate"> + <ref name="base64"/> + </element> + </define> +</grammar> +<!-- + Local Variables: + indent-tabs-mode: nil + End: +--> |