Brazorv
15-09-2005, 13:00
Sto facendo un semplice DTD che definisce la struttura di un file xml che rappresenta una lettera. il documento si apre con un elemento <letter> all'interno che deve avere due elementi <contact> che rappresentano il mittente e il destinatario, per cui hanno un attributo type che può essere "From" o "To".
io ho definito questo DTD
<!ELEMENT letter ( contact, contact, salutation, paragraph+, closing, signature ) >
<!ELEMENT contact ( name, address1, address2, city, state, zip, phone, flag )>
<!ATTLIST contact type ( From | To ) "From" >
<!ELEMENT name ( #PCDATA )>
<!ELEMENT address1 ( #PCDATA )>
<!ELEMENT address2 ( #PCDATA )>
<!ELEMENT city ( #PCDATA )>
<!ELEMENT state ( #PCDATA )>
<!ELEMENT zip ( #PCDATA )>
<!ELEMENT phone ( #PCDATA )>
<!ELEMENT flag EMPTY>
<!ATTLIST flag gender ( M | F ) "M">
<!ELEMENT salutation ( #PCDATA )>
<!ELEMENT paragraph ( #PCDATA | bold )*>
<!ELEMENT bold ( #PCDATA )>
<!ELEMENT closing ( #PCDATA )>
<!ELEMENT signature ( #PCDATA )>
però in questo si possono inserire 2 contact di tipo From o To.
Come posso fare per validare documenti che abbiano solo il primo contact di tipo From e il secondo di tipo To?
io ho definito questo DTD
<!ELEMENT letter ( contact, contact, salutation, paragraph+, closing, signature ) >
<!ELEMENT contact ( name, address1, address2, city, state, zip, phone, flag )>
<!ATTLIST contact type ( From | To ) "From" >
<!ELEMENT name ( #PCDATA )>
<!ELEMENT address1 ( #PCDATA )>
<!ELEMENT address2 ( #PCDATA )>
<!ELEMENT city ( #PCDATA )>
<!ELEMENT state ( #PCDATA )>
<!ELEMENT zip ( #PCDATA )>
<!ELEMENT phone ( #PCDATA )>
<!ELEMENT flag EMPTY>
<!ATTLIST flag gender ( M | F ) "M">
<!ELEMENT salutation ( #PCDATA )>
<!ELEMENT paragraph ( #PCDATA | bold )*>
<!ELEMENT bold ( #PCDATA )>
<!ELEMENT closing ( #PCDATA )>
<!ELEMENT signature ( #PCDATA )>
però in questo si possono inserire 2 contact di tipo From o To.
Come posso fare per validare documenti che abbiano solo il primo contact di tipo From e il secondo di tipo To?