<!-- XML DTD for Subversion command-line client output. -->

<!-- For "svn status" -->
<!ENTITY % BOOL '(true | false) "false"'>

<!ELEMENT status (target*)>

<!ELEMENT target (entry*, against?)>
<!-- path: target path -->
<!ATTLIST target
  path CDATA #REQUIRED>

<!ELEMENT entry (wc-status, repos-status?)>
<!-- path: entry path -->
<!ATTLIST entry
  path CDATA #REQUIRED>

<!ELEMENT wc-status (commit?, lock?)>
<!-- item: item/text status -->
<!-- props: properites status -->
<!-- revision: base revision numer -->
<!-- wc-locked: WC dir locked? -->
<!-- copied: add with history? -->
<!-- switched: item switched relative to its parent? -->
<!ATTLIST wc-status
  item (added | conflicted | deleted | ignored | modified |
  replaced | external | unversioned | incomplete | obstructed |
  normal | none) #REQUIRED
  props (conflicted | modified | normal | none) #REQUIRED
  revision CDATA #IMPLIED
  wc-locked %BOOL;
  copied %BOOL;
  switched %BOOL;
>

<!ELEMENT repos-status (lock?)>
<!-- item: repository status of the item -->
<!-- props: repository status of the item's properties -->
<!ATTLIST repos-status
  item (added | deleted | modified | replaced | none) #REQUIRED
  props (modified | none) #REQUIRED
>

<!ELEMENT commit (author?, date?)>
<!-- revision: last committed revision -->
<!ATTLIST commit revision CDATA #REQUIRED>
<!ELEMENT author (#PCDATA)>  <!-- author -->
<!ELEMENT date (#PCDATA)>  <!-- date in ISO format -->

<!-- Lock info stored in WC or repos. -->
<!ELEMENT lock (token, owner, comment?, created, expires?)>

<!ELEMENT token (#PCDATA)>    <!-- lock token URI -->
<!ELEMENT owner (#PCDATA)>    <!-- lock owner -->
<!ELEMENT comment (#PCDATA)>  <!-- lock comment -->
<!ELEMENT created (#PCDATA)>  <!-- creation date in ISO format -->
<!ELEMENT expires (#PCDATA)>  <!-- expiration date in ISO format -->

<!ELEMENT against EMPTY>
<!-- revision: revision number at which the repository information was -->
<!-- obtained -->
<!ATTLIST against revision CDATA #REQUIRED>
