Mercurial > hg
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} |