aboutsummaryrefslogtreecommitdiff
path: root/scripts/left-right-schema.rng
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/left-right-schema.rng')
-rw-r--r--scripts/left-right-schema.rng948
1 files changed, 0 insertions, 948 deletions
diff --git a/scripts/left-right-schema.rng b/scripts/left-right-schema.rng
deleted file mode 100644
index e0917fa9..00000000
--- a/scripts/left-right-schema.rng
+++ /dev/null
@@ -1,948 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- $Id$
-
- RelaxNG (Compact Syntax) Schema for RPKI left-right protocol.
-
- 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/left-right-spec/" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
- <!-- Top level PDU -->
- <start>
- <element name="msg">
- <attribute name="version">
- <data type="positiveInteger">
- <param name="maxInclusive">1</param>
- </data>
- </attribute>
- <zeroOrMore>
- <choice>
- <ref name="self_elt"/>
- <ref name="bsc_elt"/>
- <ref name="parent_elt"/>
- <ref name="child_elt"/>
- <ref name="repository_elt"/>
- <ref name="ro_elt"/>
- <ref name="list_resources_elt"/>
- <ref name="report_error_elt"/>
- </choice>
- </zeroOrMore>
- </element>
- </start>
- <!-- Tag attributes for bulk operations -->
- <define name="tag">
- <optional>
- <attribute name="tag">
- <data type="token">
- <param name="maxLength">1024</param>
- </data>
- </attribute>
- </optional>
- </define>
- <!--
- Combinations of action and type attributes used in later definitions.
- The same patterns repeat in most of the elements in this protocol.
- -->
- <define name="ctl_cq">
- <attribute name="action">
- <value>create</value>
- </attribute>
- <attribute name="type">
- <value>query</value>
- </attribute>
- <ref name="tag"/>
- </define>
- <define name="ctl_sq">
- <attribute name="action">
- <value>set</value>
- </attribute>
- <attribute name="type">
- <value>query</value>
- </attribute>
- <ref name="tag"/>
- </define>
- <define name="ctl_gq">
- <attribute name="action">
- <value>get</value>
- </attribute>
- <attribute name="type">
- <value>query</value>
- </attribute>
- <ref name="tag"/>
- </define>
- <define name="ctl_lq">
- <attribute name="action">
- <value>list</value>
- </attribute>
- <attribute name="type">
- <value>query</value>
- </attribute>
- <ref name="tag"/>
- </define>
- <define name="ctl_dq">
- <attribute name="action">
- <value>destroy</value>
- </attribute>
- <attribute name="type">
- <value>query</value>
- </attribute>
- <ref name="tag"/>
- </define>
- <define name="ctl_cr">
- <attribute name="action">
- <value>create</value>
- </attribute>
- <attribute name="type">
- <value>reply</value>
- </attribute>
- <ref name="tag"/>
- </define>
- <define name="ctl_sr">
- <attribute name="action">
- <value>set</value>
- </attribute>
- <attribute name="type">
- <value>reply</value>
- </attribute>
- <ref name="tag"/>
- </define>
- <define name="ctl_gr">
- <attribute name="action">
- <value>get</value>
- </attribute>
- <attribute name="type">
- <value>reply</value>
- </attribute>
- <ref name="tag"/>
- </define>
- <define name="ctl_lr">
- <attribute name="action">
- <value>list</value>
- </attribute>
- <attribute name="type">
- <value>reply</value>
- </attribute>
- <ref name="tag"/>
- </define>
- <define name="ctl_dr">
- <attribute name="action">
- <value>destroy</value>
- </attribute>
- <attribute name="type">
- <value>reply</value>
- </attribute>
- <ref name="tag"/>
- </define>
- <!-- Base64 encoded DER stuff -->
- <define name="base64">
- <data type="base64Binary">
- <param name="maxLength">512000</param>
- </data>
- </define>
- <!-- How we wrap trust anchor elements -->
- <define name="cms_ta">
- <element name="cms_ta">
- <ref name="base64"/>
- </element>
- </define>
- <define name="https_ta">
- <element name="https_ta">
- <ref name="base64"/>
- </element>
- </define>
- <!-- Base definition for all fields that are really just SQL primary indices -->
- <define name="sql_id">
- <data type="token">
- <param name="maxLength">1024</param>
- </data>
- </define>
- <!-- <self/> element -->
- <define name="self_bool">
- <optional>
- <attribute name="rekey">
- <value>yes</value>
- </attribute>
- </optional>
- <optional>
- <attribute name="reissue">
- <value>yes</value>
- </attribute>
- </optional>
- <optional>
- <attribute name="revoke">
- <value>yes</value>
- </attribute>
- </optional>
- <optional>
- <attribute name="run_now">
- <value>yes</value>
- </attribute>
- </optional>
- <optional>
- <attribute name="publish_world_now">
- <value>yes</value>
- </attribute>
- </optional>
- <optional>
- <attribute name="clear_extension_preferences">
- <value>yes</value>
- </attribute>
- </optional>
- </define>
- <define name="self_payload">
- <optional>
- <attribute name="use_hsm">
- <choice>
- <value>yes</value>
- <value>no</value>
- </choice>
- </attribute>
- </optional>
- <optional>
- <attribute name="crl_interval">
- <data type="token">
- <param name="maxLength">1024</param>
- </data>
- </attribute>
- </optional>
- <zeroOrMore>
- <element name="extension_preference">
- <attribute name="name">
- <data type="token">
- <param name="maxLength">1024</param>
- </data>
- </attribute>
- <data type="string">
- <param name="maxLength">512000</param>
- </data>
- </element>
- </zeroOrMore>
- </define>
- <define name="self_id">
- <attribute name="self_id">
- <ref name="sql_id"/>
- </attribute>
- </define>
- <define name="self_elt" combine="choice">
- <element name="self">
- <ref name="ctl_cq"/>
- <ref name="self_bool"/>
- <ref name="self_payload"/>
- </element>
- </define>
- <define name="self_elt" combine="choice">
- <element name="self">
- <ref name="ctl_cr"/>
- <ref name="self_id"/>
- </element>
- </define>
- <define name="self_elt" combine="choice">
- <element name="self">
- <ref name="ctl_sq"/>
- <ref name="self_id"/>
- <ref name="self_bool"/>
- <ref name="self_payload"/>
- </element>
- </define>
- <define name="self_elt" combine="choice">
- <element name="self">
- <ref name="ctl_sr"/>
- <ref name="self_id"/>
- </element>
- </define>
- <define name="self_elt" combine="choice">
- <element name="self">
- <ref name="ctl_gq"/>
- <ref name="self_id"/>
- </element>
- </define>
- <define name="self_elt" combine="choice">
- <element name="self">
- <ref name="ctl_gr"/>
- <ref name="self_id"/>
- <ref name="self_payload"/>
- </element>
- </define>
- <define name="self_elt" combine="choice">
- <element name="self">
- <ref name="ctl_lq"/>
- </element>
- </define>
- <define name="self_elt" combine="choice">
- <element name="self">
- <ref name="ctl_lr"/>
- <ref name="self_id"/>
- <ref name="self_payload"/>
- </element>
- </define>
- <define name="self_elt" combine="choice">
- <element name="self">
- <ref name="ctl_dq"/>
- <ref name="self_id"/>
- </element>
- </define>
- <define name="self_elt" combine="choice">
- <element name="self">
- <ref name="ctl_dr"/>
- <ref name="self_id"/>
- </element>
- </define>
- <!-- <bsc/> element. Key parameters hardwired for now. -->
- <define name="bsc_bool">
- <optional>
- <attribute name="generate_keypair">
- <value>yes</value>
- </attribute>
- <optional>
- <attribute name="key_type">
- <value>rsa</value>
- </attribute>
- </optional>
- <optional>
- <attribute name="hash_alg">
- <value>sha256</value>
- </attribute>
- </optional>
- <optional>
- <attribute name="key_length">
- <value>2048</value>
- </attribute>
- </optional>
- </optional>
- <optional>
- <attribute name="clear_signing_certs">
- <value>yes</value>
- </attribute>
- </optional>
- </define>
- <define name="bsc_id">
- <attribute name="bsc_id">
- <ref name="sql_id"/>
- </attribute>
- </define>
- <define name="bsc_payload">
- <zeroOrMore>
- <element name="signing_cert">
- <ref name="base64"/>
- </element>
- </zeroOrMore>
- <optional>
- <element name="public_key">
- <ref name="base64"/>
- </element>
- </optional>
- </define>
- <define name="bsc_pkcs10">
- <optional>
- <element name="pkcs10_cert_request">
- <ref name="base64"/>
- </element>
- </optional>
- </define>
- <define name="bsc_elt" combine="choice">
- <element name="bsc">
- <ref name="ctl_cq"/>
- <ref name="self_id"/>
- <ref name="bsc_bool"/>
- <ref name="bsc_payload"/>
- </element>
- </define>
- <define name="bsc_elt" combine="choice">
- <element name="bsc">
- <ref name="ctl_cr"/>
- <ref name="self_id"/>
- <ref name="bsc_id"/>
- <ref name="bsc_pkcs10"/>
- </element>
- </define>
- <define name="bsc_elt" combine="choice">
- <element name="bsc">
- <ref name="ctl_sq"/>
- <ref name="self_id"/>
- <ref name="bsc_id"/>
- <ref name="bsc_bool"/>
- <ref name="bsc_payload"/>
- </element>
- </define>
- <define name="bsc_elt" combine="choice">
- <element name="bsc">
- <ref name="ctl_sr"/>
- <ref name="self_id"/>
- <ref name="bsc_id"/>
- <ref name="bsc_pkcs10"/>
- </element>
- </define>
- <define name="bsc_elt" combine="choice">
- <element name="bsc">
- <ref name="ctl_gq"/>
- <ref name="self_id"/>
- <ref name="bsc_id"/>
- </element>
- </define>
- <define name="bsc_elt" combine="choice">
- <element name="bsc">
- <ref name="ctl_gr"/>
- <ref name="self_id"/>
- <ref name="bsc_id"/>
- <ref name="bsc_payload"/>
- </element>
- </define>
- <define name="bsc_elt" combine="choice">
- <element name="bsc">
- <ref name="ctl_lq"/>
- <ref name="self_id"/>
- </element>
- </define>
- <define name="bsc_elt" combine="choice">
- <element name="bsc">
- <ref name="ctl_lr"/>
- <ref name="self_id"/>
- <ref name="bsc_id"/>
- <ref name="bsc_payload"/>
- </element>
- </define>
- <define name="bsc_elt" combine="choice">
- <element name="bsc">
- <ref name="ctl_dq"/>
- <ref name="self_id"/>
- <ref name="bsc_id"/>
- </element>
- </define>
- <define name="bsc_elt" combine="choice">
- <element name="bsc">
- <ref name="ctl_dr"/>
- <ref name="self_id"/>
- <ref name="bsc_id"/>
- </element>
- </define>
- <!-- <parent/> element -->
- <define name="parent_id">
- <attribute name="parent_id">
- <ref name="sql_id"/>
- </attribute>
- </define>
- <define name="parent_bool">
- <optional>
- <attribute name="rekey">
- <value>yes</value>
- </attribute>
- </optional>
- <optional>
- <attribute name="reissue">
- <value>yes</value>
- </attribute>
- </optional>
- <optional>
- <attribute name="revoke">
- <value>yes</value>
- </attribute>
- </optional>
- </define>
- <define name="parent_payload">
- <optional>
- <attribute name="peer_contact_uri">
- <data type="anyURI">
- <param name="maxLength">1024</param>
- </data>
- </attribute>
- </optional>
- <optional>
- <attribute name="sia_base">
- <data type="anyURI">
- <param name="maxLength">1024</param>
- </data>
- </attribute>
- </optional>
- <optional>
- <attribute name="bsc_id">
- <data type="token">
- <param name="maxLength">1024</param>
- </data>
- </attribute>
- </optional>
- <optional>
- <attribute name="repository_id">
- <data type="token">
- <param name="maxLength">1024</param>
- </data>
- </attribute>
- </optional>
- <optional>
- <attribute name="sender_name">
- <data type="token">
- <param name="maxLength">1024</param>
- </data>
- </attribute>
- </optional>
- <optional>
- <attribute name="recipient_name">
- <data type="token">
- <param name="maxLength">1024</param>
- </data>
- </attribute>
- </optional>
- <optional>
- <ref name="cms_ta"/>
- </optional>
- <optional>
- <ref name="https_ta"/>
- </optional>
- </define>
- <define name="parent_elt" combine="choice">
- <element name="parent">
- <ref name="ctl_cq"/>
- <ref name="self_id"/>
- <ref name="parent_bool"/>
- <ref name="parent_payload"/>
- </element>
- </define>
- <define name="parent_elt" combine="choice">
- <element name="parent">
- <ref name="ctl_cr"/>
- <ref name="self_id"/>
- <ref name="parent_id"/>
- </element>
- </define>
- <define name="parent_elt" combine="choice">
- <element name="parent">
- <ref name="ctl_sq"/>
- <ref name="self_id"/>
- <ref name="parent_id"/>
- <ref name="parent_bool"/>
- <ref name="parent_payload"/>
- </element>
- </define>
- <define name="parent_elt" combine="choice">
- <element name="parent">
- <ref name="ctl_sr"/>
- <ref name="self_id"/>
- <ref name="parent_id"/>
- </element>
- </define>
- <define name="parent_elt" combine="choice">
- <element name="parent">
- <ref name="ctl_gq"/>
- <ref name="self_id"/>
- <ref name="parent_id"/>
- </element>
- </define>
- <define name="parent_elt" combine="choice">
- <element name="parent">
- <ref name="ctl_gr"/>
- <ref name="self_id"/>
- <ref name="parent_id"/>
- <ref name="parent_payload"/>
- </element>
- </define>
- <define name="parent_elt" combine="choice">
- <element name="parent">
- <ref name="ctl_lq"/>
- <ref name="self_id"/>
- </element>
- </define>
- <define name="parent_elt" combine="choice">
- <element name="parent">
- <ref name="ctl_lr"/>
- <ref name="self_id"/>
- <ref name="parent_id"/>
- <ref name="parent_payload"/>
- </element>
- </define>
- <define name="parent_elt" combine="choice">
- <element name="parent">
- <ref name="ctl_dq"/>
- <ref name="self_id"/>
- <ref name="parent_id"/>
- </element>
- </define>
- <define name="parent_elt" combine="choice">
- <element name="parent">
- <ref name="ctl_dr"/>
- <ref name="self_id"/>
- <ref name="parent_id"/>
- </element>
- </define>
- <!-- <child/> element -->
- <define name="child_id">
- <attribute name="child_id">
- <ref name="sql_id"/>
- </attribute>
- </define>
- <define name="child_bool">
- <optional>
- <attribute name="reissue">
- <value>yes</value>
- </attribute>
- </optional>
- </define>
- <define name="child_payload">
- <optional>
- <attribute name="bsc_id">
- <data type="token">
- <param name="maxLength">1024</param>
- </data>
- </attribute>
- </optional>
- <optional>
- <ref name="cms_ta"/>
- </optional>
- </define>
- <define name="child_elt" combine="choice">
- <element name="child">
- <ref name="ctl_cq"/>
- <ref name="self_id"/>
- <ref name="child_bool"/>
- <ref name="child_payload"/>
- </element>
- </define>
- <define name="child_elt" combine="choice">
- <element name="child">
- <ref name="ctl_cr"/>
- <ref name="self_id"/>
- <ref name="child_id"/>
- </element>
- </define>
- <define name="child_elt" combine="choice">
- <element name="child">
- <ref name="ctl_sq"/>
- <ref name="self_id"/>
- <ref name="child_id"/>
- <ref name="child_bool"/>
- <ref name="child_payload"/>
- </element>
- </define>
- <define name="child_elt" combine="choice">
- <element name="child">
- <ref name="ctl_sr"/>
- <ref name="self_id"/>
- <ref name="child_id"/>
- </element>
- </define>
- <define name="child_elt" combine="choice">
- <element name="child">
- <ref name="ctl_gq"/>
- <ref name="self_id"/>
- <ref name="child_id"/>
- </element>
- </define>
- <define name="child_elt" combine="choice">
- <element name="child">
- <ref name="ctl_gr"/>
- <ref name="self_id"/>
- <ref name="child_id"/>
- <ref name="child_payload"/>
- </element>
- </define>
- <define name="child_elt" combine="choice">
- <element name="child">
- <ref name="ctl_lq"/>
- <ref name="self_id"/>
- </element>
- </define>
- <define name="child_elt" combine="choice">
- <element name="child">
- <ref name="ctl_lr"/>
- <ref name="self_id"/>
- <ref name="child_id"/>
- <ref name="child_payload"/>
- </element>
- </define>
- <define name="child_elt" combine="choice">
- <element name="child">
- <ref name="ctl_dq"/>
- <ref name="self_id"/>
- <ref name="child_id"/>
- </element>
- </define>
- <define name="child_elt" combine="choice">
- <element name="child">
- <ref name="ctl_dr"/>
- <ref name="self_id"/>
- <ref name="child_id"/>
- </element>
- </define>
- <!-- <repository/> element -->
- <define name="repository_id">
- <attribute name="repository_id">
- <ref name="sql_id"/>
- </attribute>
- </define>
- <define name="repository_payload">
- <optional>
- <attribute name="peer_contact_uri">
- <data type="anyURI">
- <param name="maxLength">1024</param>
- </data>
- </attribute>
- </optional>
- <optional>
- <attribute name="bsc_id">
- <data type="token">
- <param name="maxLength">1024</param>
- </data>
- </attribute>
- </optional>
- <optional>
- <ref name="cms_ta"/>
- </optional>
- <optional>
- <ref name="https_ta"/>
- </optional>
- </define>
- <define name="repository_elt" combine="choice">
- <element name="repository">
- <ref name="ctl_cq"/>
- <ref name="self_id"/>
- <ref name="repository_payload"/>
- </element>
- </define>
- <define name="repository_elt" combine="choice">
- <element name="repository">
- <ref name="ctl_cr"/>
- <ref name="self_id"/>
- <ref name="repository_id"/>
- </element>
- </define>
- <define name="repository_elt" combine="choice">
- <element name="repository">
- <ref name="ctl_sq"/>
- <ref name="self_id"/>
- <ref name="repository_id"/>
- <ref name="repository_payload"/>
- </element>
- </define>
- <define name="repository_elt" combine="choice">
- <element name="repository">
- <ref name="ctl_sr"/>
- <ref name="self_id"/>
- <ref name="repository_id"/>
- </element>
- </define>
- <define name="repository_elt" combine="choice">
- <element name="repository">
- <ref name="ctl_gq"/>
- <ref name="self_id"/>
- <ref name="repository_id"/>
- </element>
- </define>
- <define name="repository_elt" combine="choice">
- <element name="repository">
- <ref name="ctl_gr"/>
- <ref name="self_id"/>
- <ref name="repository_id"/>
- <ref name="repository_payload"/>
- </element>
- </define>
- <define name="repository_elt" combine="choice">
- <element name="repository">
- <ref name="ctl_lq"/>
- <ref name="self_id"/>
- </element>
- </define>
- <define name="repository_elt" combine="choice">
- <element name="repository">
- <ref name="ctl_lr"/>
- <ref name="self_id"/>
- <ref name="repository_id"/>
- <ref name="repository_payload"/>
- </element>
- </define>
- <define name="repository_elt" combine="choice">
- <element name="repository">
- <ref name="ctl_dq"/>
- <ref name="self_id"/>
- <ref name="repository_id"/>
- </element>
- </define>
- <define name="repository_elt" combine="choice">
- <element name="repository">
- <ref name="ctl_dr"/>
- <ref name="self_id"/>
- <ref name="repository_id"/>
- </element>
- </define>
- <!-- <route_origin/> element -->
- <define name="ro_id">
- <attribute name="route_origin_id">
- <ref name="sql_id"/>
- </attribute>
- </define>
- <define name="ro_bool">
- <optional>
- <attribute name="suppress_publication">
- <value>yes</value>
- </attribute>
- </optional>
- </define>
- <define name="ro_payload">
- <optional>
- <attribute name="as_number">
- <data type="token">
- <param name="maxLength">1024</param>
- </data>
- </attribute>
- </optional>
- <optional>
- <attribute name="ipv4">
- <data type="token">
- <param name="maxLength">1024</param>
- </data>
- </attribute>
- </optional>
- <optional>
- <attribute name="ipv6">
- <data type="token">
- <param name="maxLength">1024</param>
- </data>
- </attribute>
- </optional>
- </define>
- <define name="ro_elt" combine="choice">
- <element name="route_origin">
- <ref name="ctl_cq"/>
- <ref name="self_id"/>
- <ref name="ro_bool"/>
- <ref name="ro_payload"/>
- </element>
- </define>
- <define name="ro_elt" combine="choice">
- <element name="route_origin">
- <ref name="ctl_cr"/>
- <ref name="self_id"/>
- <ref name="ro_id"/>
- </element>
- </define>
- <define name="ro_elt" combine="choice">
- <element name="route_origin">
- <ref name="ctl_sq"/>
- <ref name="self_id"/>
- <ref name="ro_id"/>
- <ref name="ro_bool"/>
- <ref name="ro_payload"/>
- </element>
- </define>
- <define name="ro_elt" combine="choice">
- <element name="route_origin">
- <ref name="ctl_sr"/>
- <ref name="self_id"/>
- <ref name="ro_id"/>
- </element>
- </define>
- <define name="ro_elt" combine="choice">
- <element name="route_origin">
- <ref name="ctl_gq"/>
- <ref name="self_id"/>
- <ref name="ro_id"/>
- </element>
- </define>
- <define name="ro_elt" combine="choice">
- <element name="route_origin">
- <ref name="ctl_gr"/>
- <ref name="self_id"/>
- <ref name="ro_id"/>
- <ref name="ro_payload"/>
- </element>
- </define>
- <define name="ro_elt" combine="choice">
- <element name="route_origin">
- <ref name="ctl_lq"/>
- <ref name="self_id"/>
- </element>
- </define>
- <define name="ro_elt" combine="choice">
- <element name="route_origin">
- <ref name="ctl_lr"/>
- <ref name="self_id"/>
- <ref name="ro_id"/>
- <ref name="ro_payload"/>
- </element>
- </define>
- <define name="ro_elt" combine="choice">
- <element name="route_origin">
- <ref name="ctl_dq"/>
- <ref name="self_id"/>
- <ref name="ro_id"/>
- </element>
- </define>
- <define name="ro_elt" combine="choice">
- <element name="route_origin">
- <ref name="ctl_dr"/>
- <ref name="self_id"/>
- <ref name="ro_id"/>
- </element>
- </define>
- <!-- <list_resources/> element -->
- <define name="list_resources_elt">
- <element name="list_resources">
- <choice>
- <group>
- <attribute name="type">
- <value>query</value>
- </attribute>
- <ref name="tag"/>
- <ref name="self_id"/>
- <ref name="child_id"/>
- </group>
- <group>
- <attribute name="type">
- <value>reply</value>
- </attribute>
- <ref name="tag"/>
- <ref name="self_id"/>
- <ref name="child_id"/>
- <attribute name="valid_until">
- <data type="token">
- <param name="maxLength">1024</param>
- </data>
- </attribute>
- <optional>
- <attribute name="subject_name">
- <data type="token">
- <param name="maxLength">1024</param>
- </data>
- </attribute>
- </optional>
- <optional>
- <attribute name="as">
- <data type="token">
- <param name="maxLength">1024</param>
- </data>
- </attribute>
- </optional>
- <optional>
- <attribute name="ipv4">
- <data type="token">
- <param name="maxLength">1024</param>
- </data>
- </attribute>
- </optional>
- <optional>
- <attribute name="ipv6">
- <data type="token">
- <param name="maxLength">1024</param>
- </data>
- </attribute>
- </optional>
- </group>
- </choice>
- </element>
- </define>
- <!-- <report_error/> element -->
- <define name="report_error_elt">
- <element name="report_error">
- <ref name="tag"/>
- <ref name="self_id"/>
- <attribute name="error_code">
- <data type="token">
- <param name="maxLength">1024</param>
- </data>
- </attribute>
- <optional>
- <data type="string">
- <param name="maxLength">512000</param>
- </data>
- </optional>
- </element>
- </define>
-</grammar>