Ho la seguente definizione:
<?xml version="1.0" standalone="yes" ?>
<BIB>
<LIBRO nome="Info">
<AUTORE id="dony">D.Sciuto</AUTORE>
<AUTORE id="jack">G.Buonanno</AUTORE>
<AUTORE id="luca">L.Mari</AUTORE>
<AUTORE id="willy">W.Fornaciari</AUTORE>
<TITOLO>Introduzione ai sistemi informatici</TITOLO>
<EDITORE>McGraw-Hill Italia</EDITORE>
<ANNO>1997</ANNO>
</LIBRO>
<LIBRO>
<AUTORE idref="luca" />
<TITOLO>Accesso a database via web</TITOLO>
<EDITORE>Apogeo</EDITORE>
<ANNO>2001</ANNO>
</LIBRO>
</BIB>
Per realizzare ciò facciamo uso di un DTD o di uno schema XML:
<!DOCTYPE bib [
<!ELEMENT BIB (LIBRO+)>
<!ELEMENT LIBRO (AUTORE+,TITOLO,EDITORE?,ANNO?)>
<!ATTLIST LIBRO
isbn CDATA #IMPLIED
nome CDATA #IMPLIED>
<!ELEMENT AUTORE (#PCDATA)>
<!ATTLIST AUTORE
id ID #IMPLIED
idref IDREF #IMPLIED>
<!ELEMENT TITOLO (#PCDATA)>
<!ELEMENT EDITORE (#PCDATA)>
<!ELEMENT ANNO (#PCDATA)>
]>
<xsd schema xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<xsd:element name="LIBRO" type="BOOKTYPE" />
<xsd:complexType name="BOOKTYPE" >
<xsd element name="AUTORE" type="xsd:string"
minOccurs="1" maxOccurs="unbounded" />
<xsd:element name="TITOLO" type="xsd:string" />
<xsd:element name="EDITORE" type="xsd:string"
minOccurs="0" maxOccurs="1" />
<xsd:element name="ANNO" type="xsd:decimal"
minOccurs="0" maxOccurs="1" />
<xsd:attribute name="isbn" type="xsd:string" />
<xsd:attribute name="nome" type="xsd:string" />
</xsd:complexType>
</xsd:schema>
Come mai nello schema XML non si fa riferimento agli attributi id e idref? Come posso modificare lo schema nel caso sia sbagliato?

Rispondi quotando
