contrib/xml.rnc
author Jun Wu <quark@fb.com>
Sun, 10 Apr 2016 03:14:32 +0100
changeset 28854 ddef14468952
parent 10161 3acfb69a4729
permissions -rw-r--r--
chg: add fchdirx as a utility function As part of the series to support long socket paths, we need to use fchdir and check its result in several places. Make it a utility function.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10161
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
     1
# RelaxNG schema for "xml" log style
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
     2
# Inspired by Subversion's XML log format.
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
     3
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
     4
start = log
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
     5
node.type = xsd:string  {minLength = "40" maxLength = "40"}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
     6
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
     7
log = element log { logentry+ }
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
     8
logentry = element logentry {
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
     9
    logentry.attlist,
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    10
    branch*, tag*, hgparent*,
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    11
    author, date,
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    12
    msg, paths?, copies?, extra*
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    13
}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    14
logentry.attlist =
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    15
    attribute revision {xsd:nonNegativeInteger}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    16
  & attribute node {node.type}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    17
branch = element branch { text }
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    18
tag = element tag { text }
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    19
hgparent = element parent {hgparent.attlist, text}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    20
hgparent.attlist =
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    21
    attribute revision {xsd:integer {minInclusive = "-1"} }
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    22
  & attribute node {node.type}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    23
author = element author { author.attlist, text }
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    24
author.attlist =
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    25
    attribute email {text}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    26
date = element date {xsd:dateTime}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    27
msg = element msg {msg.attlist, text}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    28
msg.attlist =
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    29
    attribute xml:space {"preserve"}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    30
paths = element paths { path* }
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    31
path = element path { path.attlist, text }
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    32
path.attlist =
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    33
    # Action: (A)dd, (M)odify, (R)emove
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    34
    attribute action {"A"|"M"|"R"}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    35
copies = element copies { copy+ }
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    36
copy = element copy { copy.attlist, text }
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    37
copy.attlist =
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    38
    attribute source {text}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    39
extra = element extra {extra.attlist, text}
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    40
extra.attlist =
3acfb69a4729 Added RelaxNG schema for hg log XML output format
Robert Bachmann <rbachm@gmail.com>
parents:
diff changeset
    41
    attribute key {text}