diff options
Diffstat (limited to 'scripts/left-right-schema.rnc')
-rw-r--r-- | scripts/left-right-schema.rnc | 70 |
1 files changed, 53 insertions, 17 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 { |