diff options
Diffstat (limited to 'schemas/relaxng/rrdp.rng')
-rw-r--r-- | schemas/relaxng/rrdp.rng | 220 |
1 files changed, 79 insertions, 141 deletions
diff --git a/schemas/relaxng/rrdp.rng b/schemas/relaxng/rrdp.rng index a36d60b1..d2c4e6de 100644 --- a/schemas/relaxng/rrdp.rng +++ b/schemas/relaxng/rrdp.rng @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - $Id: rrdp.rnc 5875 2014-06-26 17:48:53Z sra $ + $Id: rrdp.rnc 5877 2014-06-30 15:48:47Z sra $ RelaxNG schema for RPKI Repository Delta Protocol (RRDP). @@ -19,15 +19,6 @@ PERFORMANCE OF THIS SOFTWARE. --> <grammar ns="http://www.ripe.net/rpki/rrdp" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> - <!-- - I find the use of "version" for both the protocol version and the database version - unncessarily confusing, so I'd prefer "serial" for the latter. For the moment, - I'm keeping the attribute names as in Tim's document and just using "serial" for - the data type. - - The xsd:string types here are me being lazy in the initial version. - We should also think about length limits for all of these types. - --> <define name="version"> <data type="positiveInteger"> <param name="maxInclusive">1</param> @@ -40,168 +31,115 @@ <data type="anyURI"/> </define> <define name="uuid"> - <data type="string"/> + <data type="string"> + <param name="pattern">[\-0-9a-fA-F]+</param> + </data> </define> - <define name="sha256"> - <data type="string"/> + <define name="hash"> + <data type="string"> + <param name="pattern">[0-9a-fA-F]+</param> + </data> </define> <define name="base64"> <data type="base64Binary"/> </define> - <define name="index"> - <data type="positiveInteger"/> - </define> - <!-- - Notification file: lists current snapshots and deltas - - We want to get rid of the multiple segment thing from Tim's original - specification. I think this means that the multiple - <snapshot-segment/> elements collapse down to a single snapshot, the - attributes of which probably float up to the <snapshot/> element. - Or maybe we just require exactly one snapshot-segment element; it's - a bit verbose, but leaves an easy way to change our minds later, - and it's XML so who's going to notice one more element? - - Specify as in the -01 draft for the moment, simplify later. - --> + <!-- Notification file: lists current snapshots and deltas --> <start combine="choice"> - <element name="msg"> + <element name="notification"> <attribute name="version"> <ref name="version"/> </attribute> - <attribute name="type"> - <value>notification</value> + <attribute name="session_id"> + <ref name="uuid"/> </attribute> - <element name="notification"> - <attribute name="session_id"> - <ref name="uuid"/> + <attribute name="serial"> + <ref name="serial"/> + </attribute> + <element name="snapshot"> + <attribute name="uri"> + <ref name="uri"/> </attribute> - <attribute name="current_version"> - <ref name="serial"/> + <attribute name="hash"> + <ref name="hash"/> </attribute> - <element name="snapshot"> - <attribute name="version"> + </element> + <oneOrMore> + <element name="delta"> + <attribute name="from"> <ref name="serial"/> </attribute> - <oneOrMore> - <element name="snapshot-segment"> - <attribute name="uri"> - <ref name="uri"/> - </attribute> - <attribute name="hash"> - <ref name="sha256"/> - </attribute> - </element> - </oneOrMore> + <attribute name="to"> + <ref name="serial"/> + </attribute> + <attribute name="uri"> + <ref name="uri"/> + </attribute> + <attribute name="hash"> + <ref name="hash"/> + </attribute> </element> - <optional> - <element name="deltas"> - <oneOrMore> - <element name="delta-segment"> - <attribute name="from"> - <ref name="serial"/> - </attribute> - <attribute name="to"> - <ref name="serial"/> - </attribute> - <attribute name="uri"> - <ref name="uri"/> - </attribute> - <attribute name="hash"> - <ref name="sha256"/> - </attribute> - </element> - </oneOrMore> - </element> - </optional> - </element> + </oneOrMore> </element> </start> - <!-- - If we're getting rid of multiple snapshot segments, I think the - index attributes go away. - - -01 is a bit vague on <publish/> and <withdraw/> elements: - Zero-or-more? One-or-more? Does "exact copy" include using the - publication protocol's XML namespace instead of RRDP's? Tag - attribute allowed? Wing it for now. - --> <!-- Snapshot segment: think DNS AXFR. --> <start combine="choice"> - <element name="msg"> + <element name="snapshot"> <attribute name="version"> <ref name="version"/> </attribute> - <attribute name="type"> - <value>snapshot</value> + <attribute name="session_id"> + <ref name="uuid"/> </attribute> - <element name="snapshot"> - <attribute name="session_id"> - <ref name="uuid"/> - </attribute> - <attribute name="repository_version"> - <ref name="serial"/> - </attribute> - <attribute name="index"> - <ref name="index"/> - </attribute> - <zeroOrMore> - <element name="publish"> - <attribute name="uri"> - <ref name="uri"/> - </attribute> - <ref name="base64"/> - </element> - </zeroOrMore> - </element> + <attribute name="serial"> + <ref name="serial"/> + </attribute> + <zeroOrMore> + <element name="publish"> + <attribute name="uri"> + <ref name="uri"/> + </attribute> + <ref name="base64"/> + </element> + </zeroOrMore> </element> </start> <!-- Delta segment: think DNS IXFR. --> - <!-- -01 doesn't say whether <delta/> is zero-or-more or one-or-more. --> <start combine="choice"> - <element name="msg"> + <element name="deltas"> <attribute name="version"> <ref name="version"/> </attribute> - <attribute name="type"> - <value>deltas</value> + <attribute name="session_id"> + <ref name="uuid"/> </attribute> - <element name="deltas"> - <attribute name="session_id"> - <ref name="uuid"/> - </attribute> - <attribute name="from"> - <ref name="serial"/> - </attribute> - <attribute name="to"> - <ref name="serial"/> - </attribute> - <attribute name="index"> - <ref name="index"/> - </attribute> - <zeroOrMore> - <element name="delta"> - <attribute name="version"> - <ref name="serial"/> - </attribute> - <zeroOrMore> - <choice> - <element name="publish"> - <attribute name="uri"> - <ref name="uri"/> - </attribute> - <ref name="base64"/> - </element> - <element name="withdraw"> - <attribute name="uri"> - <ref name="uri"/> - </attribute> - </element> - </choice> - </zeroOrMore> - </element> - </zeroOrMore> - </element> + <attribute name="from"> + <ref name="serial"/> + </attribute> + <attribute name="to"> + <ref name="serial"/> + </attribute> + <oneOrMore> + <element name="delta"> + <attribute name="serial"> + <ref name="serial"/> + </attribute> + <oneOrMore> + <choice> + <element name="publish"> + <attribute name="uri"> + <ref name="uri"/> + </attribute> + <ref name="base64"/> + </element> + <element name="withdraw"> + <attribute name="uri"> + <ref name="uri"/> + </attribute> + </element> + </choice> + </oneOrMore> + </element> + </oneOrMore> </element> </start> </grammar> |