diff options
author | Peter Wemm <peter@FreeBSD.org> | 2013-06-18 02:07:41 +0000 |
---|---|---|
committer | Peter Wemm <peter@FreeBSD.org> | 2013-06-18 02:07:41 +0000 |
commit | 32547653cc5376642e1231fb644db99933ac8db4 (patch) | |
tree | 135691142dc0e75a5e5d97b5074d03436435b8e0 /subversion/svn/schema |
Diffstat (limited to 'subversion/svn/schema')
-rw-r--r-- | subversion/svn/schema/blame.rnc | 42 | ||||
-rw-r--r-- | subversion/svn/schema/common.rnc | 77 | ||||
-rw-r--r-- | subversion/svn/schema/diff.rnc | 39 | ||||
-rw-r--r-- | subversion/svn/schema/info.rnc | 134 | ||||
-rw-r--r-- | subversion/svn/schema/list.rnc | 45 | ||||
-rw-r--r-- | subversion/svn/schema/log.rnc | 55 | ||||
-rw-r--r-- | subversion/svn/schema/props.rnc | 36 | ||||
-rw-r--r-- | subversion/svn/schema/status.rnc | 92 |
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 } |