comparison contrib/xml.rnc @ 10161:3acfb69a4729

Added RelaxNG schema for hg log XML output format
author Robert Bachmann <rbachm@gmail.com>
date Wed, 30 Dec 2009 02:44:37 +0100
parents
children
comparison
equal deleted inserted replaced
10160:48653dea23dd 10161:3acfb69a4729
1 # RelaxNG schema for "xml" log style
2 # Inspired by Subversion's XML log format.
3
4 start = log
5 node.type = xsd:string {minLength = "40" maxLength = "40"}
6
7 log = element log { logentry+ }
8 logentry = element logentry {
9 logentry.attlist,
10 branch*, tag*, hgparent*,
11 author, date,
12 msg, paths?, copies?, extra*
13 }
14 logentry.attlist =
15 attribute revision {xsd:nonNegativeInteger}
16 & attribute node {node.type}
17 branch = element branch { text }
18 tag = element tag { text }
19 hgparent = element parent {hgparent.attlist, text}
20 hgparent.attlist =
21 attribute revision {xsd:integer {minInclusive = "-1"} }
22 & attribute node {node.type}
23 author = element author { author.attlist, text }
24 author.attlist =
25 attribute email {text}
26 date = element date {xsd:dateTime}
27 msg = element msg {msg.attlist, text}
28 msg.attlist =
29 attribute xml:space {"preserve"}
30 paths = element paths { path* }
31 path = element path { path.attlist, text }
32 path.attlist =
33 # Action: (A)dd, (M)odify, (R)emove
34 attribute action {"A"|"M"|"R"}
35 copies = element copies { copy+ }
36 copy = element copy { copy.attlist, text }
37 copy.attlist =
38 attribute source {text}
39 extra = element extra {extra.attlist, text}
40 extra.attlist =
41 attribute key {text}