summaryrefslogtreecommitdiff
path: root/subversion/svn/schema
diff options
context:
space:
mode:
Diffstat (limited to 'subversion/svn/schema')
-rw-r--r--subversion/svn/schema/blame.rnc42
-rw-r--r--subversion/svn/schema/common.rnc77
-rw-r--r--subversion/svn/schema/diff.rnc39
-rw-r--r--subversion/svn/schema/info.rnc134
-rw-r--r--subversion/svn/schema/list.rnc45
-rw-r--r--subversion/svn/schema/log.rnc55
-rw-r--r--subversion/svn/schema/props.rnc36
-rw-r--r--subversion/svn/schema/status.rnc92
8 files changed, 520 insertions, 0 deletions
diff --git a/subversion/svn/schema/blame.rnc b/subversion/svn/schema/blame.rnc
new file mode 100644
index 0000000000000..b6a1e41c2c2d7
--- /dev/null
+++ b/subversion/svn/schema/blame.rnc
@@ -0,0 +1,42 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+# XML RELAX NG schema for Subversion command-line client output
+# For "svn blame"
+
+
+include "common.rnc"
+
+start = blame
+
+blame = element blame { target* }
+
+## Information for one blamed file.
+target = element target { attlist.target, entry* }
+attlist.target &= attribute path { target.type }
+
+## Information for one line of a blamed file.
+## NOTE: The order of entries in a target element is insignificant.
+entry = element entry { attlist.entry, commit?, merged? }
+attlist.entry &=
+ ## Line number.
+ attribute line-number { xsd:integer { minInclusive = "1" } }
+
+## The merged commit
+merged = element merged { attlist.merged, commit }
+attlist.merged &= attribute path { string }
diff --git a/subversion/svn/schema/common.rnc b/subversion/svn/schema/common.rnc
new file mode 100644
index 0000000000000..95729e39c948e
--- /dev/null
+++ b/subversion/svn/schema/common.rnc
@@ -0,0 +1,77 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+# XML RELAX NG schema for Subversion command-line client output
+# Common declarations
+
+# Data types.
+
+## A revision number.
+revnum.type = xsd:nonNegativeInteger
+
+## A user name.
+username.type = string
+
+## A path or URL.
+target.type = string | xsd:anyURI
+
+## An UUID.
+uuid.type = string
+
+## An MD5 checksum.
+md5sum.type = xsd:hexBinary { length = "16" }
+
+# Common elements
+
+## Commit info.
+commit = element commit { attlist.commit, author?, date? }
+attlist.commit &= attribute revision { revnum.type }
+
+author = element author { username.type }
+
+date = element date { xsd:dateTime }
+
+## Lock info stored in repository or working copy.
+lock =
+ element lock {
+ \token, owner, comment?, created, expires?
+ }
+
+## Lock token.
+\token = element token { xsd:anyURI }
+
+## Lock owner.
+owner = element owner { username.type }
+
+## Lock comment.
+comment = element comment { text }
+
+## Creation date.
+created = element created { xsd:dateTime }
+
+## Expiration date.
+expires = element expires { xsd:dateTime }
+
+## Node and revision properties.
+property = element property { attlist.property, text }
+attlist.property &=
+ ## The property name
+ attribute name { string },
+ ## The encoding of the element content. If not present, the value
+ ## is the raw content of the element.
+ attribute encoding { "base64" }?
diff --git a/subversion/svn/schema/diff.rnc b/subversion/svn/schema/diff.rnc
new file mode 100644
index 0000000000000..ab89b81531dd5
--- /dev/null
+++ b/subversion/svn/schema/diff.rnc
@@ -0,0 +1,39 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+# XML RELAX NG schema for Subversion command-line client output
+# For "svn diff --summarize --xml"
+
+include "common.rnc"
+
+start = diff
+
+diff = element diff { paths }
+
+paths = element paths { path* }
+
+## A path entry
+path = element path { attlist.path, text }
+attlist.path &=
+ ## The props of the entry.
+ attribute props { "none" | "modified" },
+ ## The kind of the entry.
+ attribute kind { "dir" | "file" },
+ ## The action performed against this path. This terminology
+ ## was chosen for consistency with 'svn status'.
+ attribute item { "none" | "added" | "modified" | "deleted" }
diff --git a/subversion/svn/schema/info.rnc b/subversion/svn/schema/info.rnc
new file mode 100644
index 0000000000000..3dc43f6d0bf91
--- /dev/null
+++ b/subversion/svn/schema/info.rnc
@@ -0,0 +1,134 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+# XML RELAX NG schema for Subversion command-line client output
+# For "svn info"
+
+include "common.rnc"
+
+start = info
+
+info = element info { entry* }
+
+entry =
+ element entry {
+ attlist.entry, url?, relative-url?, repository?, wc-info?,
+ commit?, conflict?, lock?, tree-conflict?
+ }
+attlist.entry &=
+ ## Local path.
+ attribute path { string },
+ ## Path type.
+ attribute kind { "file" | "dir" },
+ ## Revision number of path/URL.
+ attribute revision { revnum.type }
+
+## URL of this item in the repository.
+url = element url { xsd:anyURI }
+
+## Repository relative URL (^/...) of this item in the repository.
+relative-url = element relative-url { string }
+
+## Information of this item's repository.
+repository = element repository { root?, uuid? }
+
+## URL of the repository.
+root = element root { xsd:anyURI }
+
+## UUID of the repository.
+uuid = element uuid { uuid.type }
+
+## Info in the working copy entry.
+wc-info =
+ element wc-info {
+ wcroot-abspath?,
+ schedule?,
+ changelist?,
+ copy-from-url?,
+ copy-from-rev?,
+ depth?,
+ text-updated?,
+ prop-updated?,
+ checksum?,
+ moved-from?,
+ moved-to?
+ }
+
+wcroot-abspath = element wcroot-abspath { string }
+
+schedule =
+ element schedule { "normal" | "add" | "delete" | "replace" | "none" }
+
+## The name of the changelist that the path may be a member of.
+changelist = element changelist { string }
+
+copy-from-url = element copy-from-url { xsd:anyURI }
+
+copy-from-rev = element copy-from-rev { revnum.type }
+
+# Date when text was last updated.
+text-updated = element text-updated { xsd:dateTime }
+
+# Date when properties were last updated.
+prop-updated = element prop-updated { xsd:dateTime }
+
+checksum = element checksum { md5sum.type }
+
+moved-from = element moved-from { string }
+
+moved-to = element moved-to { string }
+
+conflict =
+ element conflict {
+ prev-base-file,
+ prev-wc-file?,
+ cur-base-file,
+ prop-file?
+ }
+
+## Previous base file.
+prev-base-file = element prev-base-file { string }
+
+## Previous WC file.
+prev-wc-file = element prev-wc-file { string }
+
+## Current base file.
+cur-base-file = element cur-base-file { string }
+
+## Current properties file.
+prop-file = element prop-file { string }
+
+## Depth of this directory, always "infinity" for non-directories
+depth = element depth { "infinity" | "immediates" | "files" | "empty" }
+
+tree-conflict =
+ element tree-conflict { attlist.tree-conflict }
+
+attlist.tree-conflict &=
+ ## Local path to the original victim.
+ attribute victim { string },
+ ## Path type.
+ attribute kind { "file" | "dir" },
+ ## Operation causing the tree conflict.
+ attribute operation { "update" | "merge" | "switch" },
+ ## Operation's action on the victim.
+ attribute action { "edit" | "add" | "delete" | "replace" },
+ ## Local reason for the conflict.
+ attribute reason { "edit" | "obstruction" | "delete" | "add" |
+ "missing" | "unversioned" | "replace" |
+ "moved-away" | "moved-here" }
diff --git a/subversion/svn/schema/list.rnc b/subversion/svn/schema/list.rnc
new file mode 100644
index 0000000000000..13d5897c1ea8e
--- /dev/null
+++ b/subversion/svn/schema/list.rnc
@@ -0,0 +1,45 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+# XML RELAX NG schema for Subversion command-line client output
+# For "svn list"
+
+include "common.rnc"
+
+start = lists
+
+lists = element lists { \list+ }
+
+## A target to the list command.
+\list = element list { attlist.list, entry* }
+attlist.list &=
+ ## Local path or repository URL.
+ attribute path { target.type }
+
+## A directory entry.
+entry = element entry { attlist.entry, name, size?, commit, lock? }
+attlist.entry &=
+ ## The kind of the entry.
+ attribute kind { "dir" | "file" }
+
+## Name of the file or directory.
+name = element name { string }
+
+## File size in bytes.
+size = element size { xsd:nonNegativeInteger }
+
diff --git a/subversion/svn/schema/log.rnc b/subversion/svn/schema/log.rnc
new file mode 100644
index 0000000000000..14a8b7e572bcd
--- /dev/null
+++ b/subversion/svn/schema/log.rnc
@@ -0,0 +1,55 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+# XML RELAX NG schema for Subversion command-line client output
+# For "svn log"
+
+include "common.rnc"
+
+start = log
+
+log = element log { logentry* }
+
+logentry =
+ element logentry { attlist.logentry, author?, date?, paths?, msg?, revprops?, logentry* }
+attlist.logentry &=
+ attribute revision { revnum.type }
+
+## Changed paths information.
+paths = element paths { path+ }
+
+## Path within repository.
+path = element path { attlist.path, text }
+attlist.path &=
+ ## "action code": A)dd, D)elete, R)eplace or M)odify
+ attribute action { "A" | "D" | "R" | "M" },
+ ## kind is "" when repository was < 1.6 when committing
+ attribute kind { "file" | "dir" | "" },
+ attribute text-mods { "true" | "false" }?,
+ attribute prop-mods { "true" | "false" }?,
+ (
+ ## The copyfrom path within repository.
+ attribute copyfrom-path { text },
+ ## Copyfrom revision number.
+ attribute copyfrom-rev { revnum.type })?
+
+## Log message.
+msg = element msg { text }
+
+## Revision properties.
+revprops = element revprops { property+ }
diff --git a/subversion/svn/schema/props.rnc b/subversion/svn/schema/props.rnc
new file mode 100644
index 0000000000000..260c93ef4a6c1
--- /dev/null
+++ b/subversion/svn/schema/props.rnc
@@ -0,0 +1,36 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+# XML RELAX NG schema for Subversion command-line client output
+# For "svn proplist"
+
+include "common.rnc"
+
+start = properties
+
+properties = element properties { target* | revprops }
+
+target = element target { attlist.target, property* }
+attlist.target &=
+ ## The target path.
+ attribute path { string }
+
+revprops = element revprops { attlist.revprops, property*}
+attlist.revprops &=
+ ## The revision
+ attribute rev { revnum.type }
diff --git a/subversion/svn/schema/status.rnc b/subversion/svn/schema/status.rnc
new file mode 100644
index 0000000000000..73d0ca0f7e4be
--- /dev/null
+++ b/subversion/svn/schema/status.rnc
@@ -0,0 +1,92 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+# XML RELAX NG schema for Subversion command-line client output
+# For "svn status"
+
+# The DTD compatibility annotations namespace, used for adding default
+# attribute values.
+namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
+
+include "common.rnc"
+
+start = status
+
+status = element status { (target | changelist)* }
+
+target = element target { attlist.target, entry*, against? }
+attlist.target &=
+ ## The target path.
+ attribute path { string }
+
+changelist = element changelist { attlist.changelist, entry*, against? }
+attlist.changelist &=
+ ## The changelist name.
+ attribute name { string }
+
+## Status information for a path under the target.
+entry = element entry { attlist.entry, wc-status, repos-status? }
+attlist.entry &=
+ ## Path inside the target.
+ attribute path { text }
+
+## Status of the entry in the working copy.
+wc-status = element wc-status { attlist.wc-status, commit?, lock? }
+
+attlist.wc-status &=
+ ## Item/text status.
+ attribute item {
+ "added" | "conflicted" | "deleted" | "external" | "ignored" |
+ "incomplete" | "merged" | "missing" | "modified" | "none" |
+ "normal" | "obstructed" | "replaced" | "unversioned"
+ },
+ ## Properties status.
+ attribute props { "conflicted" | "modified" | "normal" | "none" },
+ ## Base revision number.
+ attribute revision { revnum.type }?,
+ ## WC directory locked.
+ [ a:defaultValue = "false" ]
+ attribute wc-locked { "true" | "false" }?,
+ ## Add with history.
+ [ a:defaultValue = "false" ]
+ attribute copied { "true" | "false" }?,
+ # Item switched relative to its parent.
+ [ a:defaultValue = "false" ]
+ attribute switched { "true" | "false" }?,
+ ## Tree-conflict status of the item.
+ [ a:defaultValue = "false" ]
+ attribute tree-conflicted { "true" | "false" }?,
+ ## If root of a move-here, the local path to the move source.
+ attribute moved-from { text }?,
+ ## If root of a move-away, the local path to the move destination.
+ attribute moved-to { text }?
+
+## Status in repository (if --update was specified).
+repos-status = element repos-status { attlist.repos-status, lock? }
+attlist.repos-status &=
+ ## Text/item status in the repository.
+ attribute item {
+ "added" | "deleted" | "modified" | "replaced" | "none"
+ },
+ ## Properties status in repository.
+ attribute props { "modified" | "none" }
+
+against = element against { attlist.against, empty }
+attlist.against &=
+ ## Revision number at which the repository information was obtained.
+ attribute revision { revnum.type }