diff options
-rw-r--r-- | scripts/left-right-schema.rnc | 70 | ||||
-rw-r--r-- | scripts/left-right-schema.rng | 426 |
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"> |