/ PropertyList.dtd
PropertyList.dtd
 1  <!ENTITY % plistObject "(array | data | date | dict | real | integer | string | true | false )" >
 2  <!ELEMENT plist %plistObject;>
 3  <!ATTLIST plist version CDATA "1.0" >
 4  
 5  <!-- Collections -->
 6  <!ELEMENT array (%plistObject;)*>
 7  <!ELEMENT dict (key, %plistObject;)*>
 8  <!ELEMENT key (#PCDATA)>
 9  
10  <!--- Primitive types -->
11  <!ELEMENT string (#PCDATA)>
12  <!ELEMENT data (#PCDATA)> <!-- Contents interpreted as Base-64 encoded -->
13  <!ELEMENT date (#PCDATA)> <!-- Contents should conform to a subset of ISO 8601 (in particular, YYYY '-' MM '-' DD 'T' HH ':' MM ':' SS 'Z'.  Smaller units may be omitted with a loss of precision) -->
14  
15  <!-- Numerical primitives -->
16  <!ELEMENT true EMPTY>  <!-- Boolean constant true -->
17  <!ELEMENT false EMPTY> <!-- Boolean constant false -->
18  <!ELEMENT real (#PCDATA)> <!-- Contents should represent a floating point number matching ("+" | "-")? d+ ("."d*)? ("E" ("+" | "-") d+)? where d is a digit 0-9.  -->
19  <!ELEMENT integer (#PCDATA)> <!-- Contents should represent a (possibly signed) integer number in base 10 -->
20