<?xml version="1.0" encoding="UTF-8"?>

<!ELEMENT cellar (wine)* >

<!ELEMENT wine (purchaseDate,quantity,rating?,comment?) >
    <!ELEMENT purchaseDate (#PCDATA) >
    <!ELEMENT quantity (#PCDATA) >
    <!ELEMENT rating EMPTY >
        <!ATTLIST rating stars CDATA #IMPLIED>
    <!ATTLIST wine code IDREF #REQUIRED >

<!ELEMENT name (first | family | initial)+ >
    <!ELEMENT first (#PCDATA) >
    <!ELEMENT family (#PCDATA) >
    <!ELEMENT initial (#PCDATA) >
    
<!ELEMENT cellar-book (wine-catalog, owner, location, cellar) >

<!-- [general] entities for use in instance document -->
<!ENTITY guy "Guy Lapalme" >
<!ENTITY eacute "&#xe9;" >
<!ENTITY mtl "Montr&eacute;al" >
<!ENTITY GL "&guy;, &mtl;" >

<!-- parameter entities for use within a DTD -->
<!ENTITY % address "(street, city, province, postal-code)" >
    <!ELEMENT street (#PCDATA) >
    <!ELEMENT city (#PCDATA) >
    <!ELEMENT province (#PCDATA) >
    <!ELEMENT postal-code (#PCDATA) >

<!ELEMENT owner (name,%address;) >
<!ELEMENT location %address; >    

<!-- system entity for including a file -->
<!ENTITY  % wine-catalog SYSTEM "WineCatalog.dtd" >
%wine-catalog;
