aboutsummaryrefslogtreecommitdiff
path: root/myrpki.rototill/schema.rng
diff options
context:
space:
mode:
Diffstat (limited to 'myrpki.rototill/schema.rng')
-rw-r--r--myrpki.rototill/schema.rng197
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:
+-->