1# Licensed to the Apache Software Foundation (ASF) under one
2# or more contributor license agreements.  See the NOTICE file
3# distributed with this work for additional information
4# regarding copyright ownership.  The ASF licenses this file
5# to you under the Apache License, Version 2.0 (the
6# "License"); you may not use this file except in compliance
7# with the License.  You may obtain a copy of the License at
8#
9#   http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing,
12# software distributed under the License is distributed on an
13# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14# KIND, either express or implied.  See the License for the
15# specific language governing permissions and limitations
16# under the License.
17#
18#
19# XML RELAX NG schema for Subversion command-line client output
20# For "svn info"
21
22include "common.rnc"
23
24start = info
25
26info = element info { entry* }
27
28entry =
29  element entry {
30    attlist.entry, url?, relative-url?, repository?, wc-info?,
31    commit?, conflict?, lock?, tree-conflict?
32  }
33attlist.entry &=
34  ## Local path.
35  attribute path { string },
36  ## Path type.
37  attribute kind { "file" | "dir" },
38  ## Revision number of path/URL.
39  attribute revision { revnum.type }
40
41## URL of this item in the repository.
42url = element url { xsd:anyURI }
43
44## Repository relative URL (^/...) of this item in the repository.
45relative-url = element relative-url { string }
46
47## Information of this item's repository.
48repository = element repository { root?, uuid? }
49
50## URL of the repository.
51root = element root { xsd:anyURI }
52
53## UUID of the repository.
54uuid = element uuid { uuid.type }
55
56## Info in the working copy entry.
57wc-info =
58  element wc-info {
59    wcroot-abspath?,
60    schedule?,
61    changelist?,
62    copy-from-url?,
63    copy-from-rev?,
64    depth?,
65    text-updated?,
66    prop-updated?,
67    checksum?,
68    moved-from?,
69    moved-to?
70  }
71
72wcroot-abspath = element wcroot-abspath { string }
73
74schedule =
75  element schedule { "normal" | "add" | "delete" | "replace" | "none" }
76
77## The name of the changelist that the path may be a member of.
78changelist = element changelist { string }
79
80copy-from-url = element copy-from-url { xsd:anyURI }
81
82copy-from-rev = element copy-from-rev { revnum.type }
83
84# Date when text was last updated.
85text-updated = element text-updated { xsd:dateTime }
86
87# Date when properties were last updated.
88prop-updated = element prop-updated { xsd:dateTime }
89
90checksum = element checksum { md5sum.type }
91
92moved-from = element moved-from { string }
93
94moved-to = element moved-to { string }
95
96conflict =
97  element conflict {
98    prev-base-file,
99    prev-wc-file?,
100    cur-base-file,
101    prop-file?
102  }
103
104## Previous base file.
105prev-base-file = element prev-base-file { string }
106
107## Previous WC file.
108prev-wc-file = element prev-wc-file { string }
109
110## Current base file.
111cur-base-file = element cur-base-file { string }
112
113## Current properties file.
114prop-file = element prop-file { string }
115
116## Depth of this directory, always "infinity" for non-directories
117depth = element depth { "infinity" | "immediates" | "files" | "empty" }
118
119tree-conflict =
120  element tree-conflict { attlist.tree-conflict }
121
122attlist.tree-conflict &=
123  ## Local path to the original victim.
124  attribute victim { string },
125  ## Path type.
126  attribute kind { "file" | "dir" },
127  ## Operation causing the tree conflict.
128  attribute operation { "update" | "merge" | "switch" },
129  ## Operation's action on the victim.
130  attribute action { "edit" | "add" | "delete" | "replace" },
131  ## Local reason for the conflict.
132  attribute reason { "edit" | "obstruction" | "delete" | "add" |
133                     "missing" | "unversioned" | "replace" |
134                     "moved-away" | "moved-here" }
135