aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scripts/left-right-schema.rnc70
-rw-r--r--scripts/left-right-schema.rng426
2 files changed, 423 insertions, 73 deletions
diff --git a/scripts/left-right-schema.rnc b/scripts/left-right-schema.rnc
index 7bc118a9..2c41da20 100644
--- a/scripts/left-right-schema.rnc
+++ b/scripts/left-right-schema.rnc
@@ -61,17 +61,25 @@ self_elt |= element self { ctl_dr, self_id }
bsc_bool = (attribute generate_keypair { "yes" },
attribute key_type { xsd:token { maxLength="1024" } }?,
attribute hash_alg { xsd:token { maxLength="1024" } }?,
- attribute key_length { xsd:token { maxLength="1024" } }?)
+ attribute key_length { xsd:token { maxLength="1024" } }?)?
bsc_id = attribute bsc_id { sql_id }
bsc_payload = (element signing_cert { base64 }*,
- element pkcs10_cert_request { base64 }?,
element public_key { base64 }?)
-bsc_elt = element bsc {
- action, type, self_id, bsc_id?, bsc_bool?, bsc_payload
-}
+bsc_pkcs10 = element pkcs10_cert_request { base64 }?
+
+bsc_elt |= element bsc { ctl_cq, self_id, bsc_bool, bsc_payload }
+bsc_elt |= element bsc { ctl_cr, self_id, bsc_id, bsc_pkcs10 }
+bsc_elt |= element bsc { ctl_sq, self_id, bsc_id, bsc_bool, bsc_payload }
+bsc_elt |= element bsc { ctl_sr, self_id, bsc_id, bsc_pkcs10 }
+bsc_elt |= element bsc { ctl_gq, self_id, bsc_id }
+bsc_elt |= element bsc { ctl_gr, self_id, bsc_id, bsc_payload }
+bsc_elt |= element bsc { ctl_lq, self_id }
+bsc_elt |= element bsc { ctl_lr, self_id, bsc_id, bsc_payload }
+bsc_elt |= element bsc { ctl_dq, self_id, bsc_id }
+bsc_elt |= element bsc { ctl_dr, self_id, bsc_id }
parent_id = attribute parent_id { sql_id }
@@ -85,9 +93,16 @@ parent_payload = (attribute peer_contact { xsd:anyURI { maxLength="1024" } }?,
attribute repository_link { xsd:token { maxLength="1024" } }?,
peer_ta?)
-parent_elt = element parent {
- action, type, self_id, parent_id?, parent_bool, parent_payload
-}
+parent_elt |= element parent { ctl_cq, self_id, parent_bool, parent_payload }
+parent_elt |= element parent { ctl_cr, self_id, parent_id }
+parent_elt |= element parent { ctl_sq, self_id, parent_id, parent_bool, parent_payload }
+parent_elt |= element parent { ctl_sr, self_id, parent_id }
+parent_elt |= element parent { ctl_gq, self_id, parent_id }
+parent_elt |= element parent { ctl_gr, self_id, parent_id, parent_payload }
+parent_elt |= element parent { ctl_lq, self_id }
+parent_elt |= element parent { ctl_lr, self_id, parent_id, parent_payload }
+parent_elt |= element parent { ctl_dq, self_id, parent_id }
+parent_elt |= element parent { ctl_dr, self_id, parent_id }
child_id = attribute child_id { sql_id }
@@ -97,9 +112,16 @@ child_payload = (attribute bsc_link { xsd:token { maxLength="1024" } }?,
attribute child_db_id { xsd:token { maxLength="1024" } }?,
peer_ta?)
-child_elt = element child {
- action, type, self_id, child_id?, child_bool, child_payload
-}
+child_elt |= element child { ctl_cq, self_id, child_bool, child_payload }
+child_elt |= element child { ctl_cr, self_id, child_id }
+child_elt |= element child { ctl_sq, self_id, child_id, child_bool, child_payload }
+child_elt |= element child { ctl_sr, self_id, child_id }
+child_elt |= element child { ctl_gq, self_id, child_id }
+child_elt |= element child { ctl_gr, self_id, child_id, child_payload }
+child_elt |= element child { ctl_lq, self_id }
+child_elt |= element child { ctl_lr, self_id, child_id, child_payload }
+child_elt |= element child { ctl_dq, self_id, child_id }
+child_elt |= element child { ctl_dr, self_id, child_id }
repository_id = attribute repository_id { sql_id }
@@ -107,9 +129,16 @@ repository_payload = (attribute peer_contact { xsd:anyURI { maxLength="1024" } }
attribute bsc_link { xsd:token { maxLength="1024" } }?,
peer_ta?)
-repository_elt = element repository {
- action, type, self_id, repository_id?, repository_payload
-}
+repository_elt |= element repository { ctl_cq, self_id, repository_payload }
+repository_elt |= element repository { ctl_cr, self_id, repository_id }
+repository_elt |= element repository { ctl_sq, self_id, repository_id, repository_payload }
+repository_elt |= element repository { ctl_sr, self_id, repository_id }
+repository_elt |= element repository { ctl_gq, self_id, repository_id }
+repository_elt |= element repository { ctl_gr, self_id, repository_id, repository_payload }
+repository_elt |= element repository { ctl_lq, self_id }
+repository_elt |= element repository { ctl_lr, self_id, repository_id, repository_payload }
+repository_elt |= element repository { ctl_dq, self_id, repository_id }
+repository_elt |= element repository { ctl_dr, self_id, repository_id }
route_origin_id = attribute route_origin_id { sql_id }
@@ -119,9 +148,16 @@ route_origin_payload = (attribute asn { xsd:token { maxLength="1024" } }?,
attribute ipv4 { xsd:token { maxLength="1024" } }?,
attribute ipv6 { xsd:token { maxLength="1024" } }?)
-route_origin_elt = element route_origin {
- action, type, self_id, route_origin_id?, route_origin_bool, route_origin_payload
-}
+route_origin_elt |= element route_origin { ctl_cq, self_id, route_origin_bool, route_origin_payload }
+route_origin_elt |= element route_origin { ctl_cr, self_id, route_origin_id }
+route_origin_elt |= element route_origin { ctl_sq, self_id, route_origin_id, route_origin_bool, route_origin_payload }
+route_origin_elt |= element route_origin { ctl_sr, self_id, route_origin_id }
+route_origin_elt |= element route_origin { ctl_gq, self_id, route_origin_id }
+route_origin_elt |= element route_origin { ctl_gr, self_id, route_origin_id, route_origin_payload }
+route_origin_elt |= element route_origin { ctl_lq, self_id }
+route_origin_elt |= element route_origin { ctl_lr, self_id, route_origin_id, route_origin_payload }
+route_origin_elt |= element route_origin { ctl_dq, self_id, route_origin_id }
+route_origin_elt |= element route_origin { ctl_dr, self_id, route_origin_id }
list_resources_payload = (attribute valid_until { xsd:token { maxLength="1024" } }?,
element resource_class {
diff --git a/scripts/left-right-schema.rng b/scripts/left-right-schema.rng
index 12dc9360..554e8180 100644
--- a/scripts/left-right-schema.rng
+++ b/scripts/left-right-schema.rng
@@ -254,29 +254,31 @@
</element>
</define>
<define name="bsc_bool">
- <attribute name="generate_keypair">
- <value>yes</value>
- </attribute>
- <optional>
- <attribute name="key_type">
- <data type="token">
- <param name="maxLength">1024</param>
- </data>
- </attribute>
- </optional>
- <optional>
- <attribute name="hash_alg">
- <data type="token">
- <param name="maxLength">1024</param>
- </data>
- </attribute>
- </optional>
<optional>
- <attribute name="key_length">
- <data type="token">
- <param name="maxLength">1024</param>
- </data>
+ <attribute name="generate_keypair">
+ <value>yes</value>
</attribute>
+ <optional>
+ <attribute name="key_type">
+ <data type="token">
+ <param name="maxLength">1024</param>
+ </data>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="hash_alg">
+ <data type="token">
+ <param name="maxLength">1024</param>
+ </data>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="key_length">
+ <data type="token">
+ <param name="maxLength">1024</param>
+ </data>
+ </attribute>
+ </optional>
</optional>
</define>
<define name="bsc_id">
@@ -291,30 +293,94 @@
</element>
</zeroOrMore>
<optional>
- <element name="pkcs10_cert_request">
+ <element name="public_key">
<ref name="base64"/>
</element>
</optional>
+ </define>
+ <define name="bsc_pkcs10">
<optional>
- <element name="public_key">
+ <element name="pkcs10_cert_request">
<ref name="base64"/>
</element>
</optional>
</define>
- <define name="bsc_elt">
+ <define name="bsc_elt" combine="choice">
<element name="bsc">
- <ref name="action"/>
- <ref name="type"/>
+ <ref name="ctl_cq"/>
<ref name="self_id"/>
- <optional>
- <ref name="bsc_id"/>
- </optional>
- <optional>
- <ref name="bsc_bool"/>
- </optional>
+ <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>
<define name="parent_id">
<attribute name="parent_id">
<ref name="sql_id"/>
@@ -370,18 +436,80 @@
<ref name="peer_ta"/>
</optional>
</define>
- <define name="parent_elt">
+ <define name="parent_elt" combine="choice">
<element name="parent">
- <ref name="action"/>
- <ref name="type"/>
+ <ref name="ctl_cq"/>
<ref name="self_id"/>
- <optional>
- <ref name="parent_id"/>
- </optional>
<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>
<define name="child_id">
<attribute name="child_id">
<ref name="sql_id"/>
@@ -413,18 +541,80 @@
<ref name="peer_ta"/>
</optional>
</define>
- <define name="child_elt">
+ <define name="child_elt" combine="choice">
<element name="child">
- <ref name="action"/>
- <ref name="type"/>
+ <ref name="ctl_cq"/>
<ref name="self_id"/>
- <optional>
- <ref name="child_id"/>
- </optional>
<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>
<define name="repository_id">
<attribute name="repository_id">
<ref name="sql_id"/>
@@ -449,17 +639,78 @@
<ref name="peer_ta"/>
</optional>
</define>
- <define name="repository_elt">
+ <define name="repository_elt" combine="choice">
<element name="repository">
- <ref name="action"/>
- <ref name="type"/>
+ <ref name="ctl_cq"/>
<ref name="self_id"/>
- <optional>
- <ref name="repository_id"/>
- </optional>
<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>
<define name="route_origin_id">
<attribute name="route_origin_id">
<ref name="sql_id"/>
@@ -495,18 +746,81 @@
</attribute>
</optional>
</define>
- <define name="route_origin_elt">
+ <!-- route_origin_elt = element route_origin { action, type, self_id, route_origin_id?, route_origin_bool, route_origin_payload } -->
+ <define name="route_origin_elt" combine="choice">
<element name="route_origin">
- <ref name="action"/>
- <ref name="type"/>
+ <ref name="ctl_cq"/>
<ref name="self_id"/>
- <optional>
- <ref name="route_origin_id"/>
- </optional>
<ref name="route_origin_bool"/>
<ref name="route_origin_payload"/>
</element>
</define>
+ <define name="route_origin_elt" combine="choice">
+ <element name="route_origin">
+ <ref name="ctl_cr"/>
+ <ref name="self_id"/>
+ <ref name="route_origin_id"/>
+ </element>
+ </define>
+ <define name="route_origin_elt" combine="choice">
+ <element name="route_origin">
+ <ref name="ctl_sq"/>
+ <ref name="self_id"/>
+ <ref name="route_origin_id"/>
+ <ref name="route_origin_bool"/>
+ <ref name="route_origin_payload"/>
+ </element>
+ </define>
+ <define name="route_origin_elt" combine="choice">
+ <element name="route_origin">
+ <ref name="ctl_sr"/>
+ <ref name="self_id"/>
+ <ref name="route_origin_id"/>
+ </element>
+ </define>
+ <define name="route_origin_elt" combine="choice">
+ <element name="route_origin">
+ <ref name="ctl_gq"/>
+ <ref name="self_id"/>
+ <ref name="route_origin_id"/>
+ </element>
+ </define>
+ <define name="route_origin_elt" combine="choice">
+ <element name="route_origin">
+ <ref name="ctl_gr"/>
+ <ref name="self_id"/>
+ <ref name="route_origin_id"/>
+ <ref name="route_origin_payload"/>
+ </element>
+ </define>
+ <define name="route_origin_elt" combine="choice">
+ <element name="route_origin">
+ <ref name="ctl_lq"/>
+ <ref name="self_id"/>
+ </element>
+ </define>
+ <define name="route_origin_elt" combine="choice">
+ <element name="route_origin">
+ <ref name="ctl_lr"/>
+ <ref name="self_id"/>
+ <ref name="route_origin_id"/>
+ <ref name="route_origin_payload"/>
+ </element>
+ </define>
+ <define name="route_origin_elt" combine="choice">
+ <element name="route_origin">
+ <ref name="ctl_dq"/>
+ <ref name="self_id"/>
+ <ref name="route_origin_id"/>
+ </element>
+ </define>
+ <define name="route_origin_elt" combine="choice">
+ <element name="route_origin">
+ <ref name="ctl_dr"/>
+ <ref name="self_id"/>
+ <ref name="route_origin_id"/>
+ </element>
+ </define>
<define name="list_resources_payload">
<optional>
<attribute name="valid_until">