contrib/xml.rnc
author Ryan McElroy <rmcelroy@fb.com>
Fri, 06 Oct 2017 06:48:43 -0700
changeset 34679 143337bcec9b
parent 10161 3acfb69a4729
permissions -rw-r--r--
merge: add tests to show current behavior on failed filemerges Currently, failed file merges will nevertheless force the user to continue attempting to merge all additional unresolved files. Future patches will allow the user to halt the merge process instead. This patch first introduces a test demonstrating the current bejhavior so the upcoming changes are more obvious. Differential Revision: https://phab.mercurial-scm.org/D930

# RelaxNG schema for "xml" log style
# Inspired by Subversion's XML log format.

start = log
node.type = xsd:string  {minLength = "40" maxLength = "40"}

log = element log { logentry+ }
logentry = element logentry {
    logentry.attlist,
    branch*, tag*, hgparent*,
    author, date,
    msg, paths?, copies?, extra*
}
logentry.attlist =
    attribute revision {xsd:nonNegativeInteger}
  & attribute node {node.type}
branch = element branch { text }
tag = element tag { text }
hgparent = element parent {hgparent.attlist, text}
hgparent.attlist =
    attribute revision {xsd:integer {minInclusive = "-1"} }
  & attribute node {node.type}
author = element author { author.attlist, text }
author.attlist =
    attribute email {text}
date = element date {xsd:dateTime}
msg = element msg {msg.attlist, text}
msg.attlist =
    attribute xml:space {"preserve"}
paths = element paths { path* }
path = element path { path.attlist, text }
path.attlist =
    # Action: (A)dd, (M)odify, (R)emove
    attribute action {"A"|"M"|"R"}
copies = element copies { copy+ }
copy = element copy { copy.attlist, text }
copy.attlist =
    attribute source {text}
extra = element extra {extra.attlist, text}
extra.attlist =
    attribute key {text}