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