<!--

  XML Document Type Definition for GNUstep property list (plist).

  Copyright (C) 2005 Free Software Foundation, Inc.

  This is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2 of the License, or (at your option) any later version.

  This document is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Library General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free
  Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  Boston, MA 02111 USA.

-->

<!--
  plist is an XML language - Typical usage:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//GNUstep//DTD plist 0.9//EN"
      "http://www.gnustep.org/plist-0_9.xml">
<plist>
</plist>
-->

<!ENTITY % item "(array | data | date | dict | false | integer | real | string | true)">

<!ELEMENT plist %item;>

<!ATTLIST plist version CDATA "0.9" >

<!-- An array containing zero or more items -->
<!ELEMENT array (%item;)*>

<!-- A chunk of base-64 encoded data -->
<!ELEMENT data (#PCDATA)>

<!-- A date YYYY-MM-DD hh:mm:ss Z -->
<!ELEMENT date (#PCDATA)>

<!-- A dictionary of keys and items -->
<!ELEMENT dict (key, %item;)*>

<!-- A boolean constant -->
<!ELEMENT false EMPTY>

<!-- An integer in base ten, with an optional sign -->
<!ELEMENT integer (#PCDATA)>

<!-- A key ... treated just like a string -->
<!ELEMENT key (#PCDATA)>

<!-- A string of characters.
     Not all unicode characters are legal in PCDATA in XML,
     so an escape mechanism is provided.  A string containing
     a sequence of the form \UXXXX or \uXXXX (where XXXX is a
     hexadecimal number) will be replaced by the appropriate
     unicode character after the property list is parsed.
-->
<!ELEMENT string (#PCDATA)>

<!-- A real number [+/-]n.p[E[+/-]m]  -->
<!ELEMENT real (#PCDATA)>

<!-- A boolean constant -->
<!ELEMENT true EMPTY>

