1 <!ENTITY % plistObject
"(array | data | date | dict | real | integer | string | true | false )" >
2 <!ELEMENT plist %plistObject;
>
3 <!ATTLIST plist version CDATA
"1.0" >
6 <!ELEMENT array (%plistObject;)*
>
7 <!ELEMENT dict (key, %plistObject;)*
>
8 <!ELEMENT key (#PCDATA)
>
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) -->
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 -->