PDA

View Full Version : DTD e XML


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?

f@bio80
15-09-2005, 17:59
ciao
premetto che io non lavoro coi dtd ma con gli schemi xsd quindi non sò quanto posso aiutarti, comunque:

<!ATTLIST contact type ( From | To ) "From" >
con questa riga tu definisci un attributo di dell'elemento contact che può avere come type From OPPURE To giusto? se è così perchè non riesci a validarlo il file con un from e un to? :confused:

fabio

Brazorv
15-09-2005, 22:41
ciao
premetto che io non lavoro coi dtd ma con gli schemi xsd quindi non sò quanto posso aiutarti, comunque:

<!ATTLIST contact type ( From | To ) "From" >
con questa riga tu definisci un attributo di dell'elemento contact che può avere come type From OPPURE To giusto? se è così perchè non riesci a validarlo il file con un from e un to? :confused:

fabio

no il problema non è quello. io riesco a validare un file con un from e un to, però io vorrei che fossero validati solo i file che rispettano questa forma e non i file con un to e un to per esempio o con un from e un'altro from.

f@bio80
16-09-2005, 10:01
no il problema non è quello. io riesco a validare un file con un from e un to, però io vorrei che fossero validati solo i file che rispettano questa forma e non i file con un to e un to per esempio o con un from e un'altro from.

scusa la clausola type del contact è bloccante? altrimenti prima di impazzire ti definisci due elementi ContactFrom e ContactTo dello stesso tipo...