Article View: fr.comp.text.xml
Article #8966Re: [DTD/Schema] Liens vers entite
From: Laurent AJDNIK
Date: Wed, 04 Jul 2001 05:12
Date: Wed, 04 Jul 2001 05:12
88 lines
4116 bytes
4116 bytes
Merci pour cette reponse. Cependant, la DTD fournie n'empeche pas "parrain" de pointer vers un element qui ne soit pas "eleve", n'est-ce pas (ce que je veux eviter) ? Laurent Thomas Broyer wrote: > > In <3B41BC18.70D13E8D@insalien.org>, Laurent AJDNIK wrote: > > Soit un fichier XML contenant une liste d'eleves. Chaque eleve a un nom, > > un age, et zero ou un parrain. Le parrain doit obligatoirement etre dans > > la liste des eleves. > > > > Comment DTDer tout ca ? > > De plein de fa�ons diff�rentes, ne serait-ce que dans le choix des noms des > �l�ments, mais aussi (surtout) dans la structure voulue : attributs ou > sous-�l�ments. > > Avec des sous-�l�ments, on pourrait avoir quelque chose de ce genre : > <!ELEMENT �l�ves (�l�ve)+> > > <!ELEMENT �l�ve (nom, age)> > <!ATTLIST �l�ve > id ID #REQUIRED > parrain IDREF #IMPLIED > > > > <!ELEMENT nom (#PCDATA)> > > <!ELEMENT age (#PCDATA)> > > > A quoi ressemblerait un fichier XML conforme a cette DTD ? > > <�l�ves> > <�l�ve id="e0001"> > <nom>Thomas BROYER</nom> > <age>??</age> > </�l�ve> > <�l�ve id="e0002" parrain="e0001"> > <nom>Laurent AJDNIK</nom> > <age>??</age> > </�l�ve> > </�l�ves> > > Bien entendu, on pourrait "subdiviser" le nom en <pr�nom> et <nom>, > �ventuellement mis dans un �l�ment <identit�> ou autre. > Si le nom de famille seul est utilis�, il peut sans doute tenir place d'ID. > L'ID pourrait avoir une toute autre forme que eXXXX. > etc. > > > A titre comparatif, en XML Schema, ca donnerait quoi ? > > Je connais rien � XML Schema mais je sais qu'il y a �norm�ment de fa�ons > d'�crire la m�me chose. Quelque chose proche de la DTD au niveau > "conceptuel" reviendrait � quelque chose comme �a (� v�rifier, je rappelle > : je n'y connais rien � XML Schema) : > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > > <xsd:element name="�l�ves" type="T�l�ves"/> > <xsd:element name="�l�ve" type="T�l�ve"/> > <xsd:element name="nom" type="xsd:string"/> > <xsd:element name="age" type="xsd:duration"/> > > <xsd:complexType name="T�l�ves"> > <xsd:element name="�l�ve" type="T�l�ve" maxOccur="unbound"> > </xsd:complexType> > > <xsd:complexType name="T�l�ve"> > <xsd:sequence> > <xsd:element ref="nom"/> > <xsd:element ref="age"/> > </xsd:sequence> > <xsd:attribute name="id" type="xsd:ID" use="required"/> > <xsd:attribute name="parrain" type="xsd:IDREF"/> > <xsd:complexType> > </xsd:schema> > > On peut bien entendu restreindre les types (le "format" de l'ID, etc.), > utiliser des cl�s plut�t que des ID/IDREF, etc. > > Note aussi que l'<age> a ici un type bien d�fini (j'ai choisi xsd:duration, > c'est peut-�tre pas le meilleur, 'sais pas), donc une syntaxe bien d�finie > (cf. XML Schema, Part 2 pour en savoir plus) > > Tom.
Technical Details
Message-ID:
<3B42A5A1.28DD39B8@insalien.org>Path:
arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!howland.erols.net!univ-lyon1.fr!not-for-mailReferences:
<3B41BC18.70D13E8D@insalien.org> <2593444.KmheAe9J7N@ltgt.net>Show Full Headers
Complete Article Headers
X-Google-Language: FRENCH,ASCII X-Google-Thread: 114f60,ed6ef6154433ceb8 X-Google-Attributes: gid114f60,public X-Google-ArrivalTime: 2001-07-03 22:08:19 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!howland.erols.net!univ-lyon1.fr!not-for-mail From: Laurent AJDNIK <laurent.ajdnik@insalien.org> Newsgroups: fr.comp.text.xml Subject: Re: [DTD/Schema] Liens vers entite Date: Wed, 04 Jul 2001 07:12:01 +0200 Organization: CISM (Universite Claude Bernard Lyon I et INSA Lyon) Lines: 88 Message-ID: <3B42A5A1.28DD39B8@insalien.org> References: <3B41BC18.70D13E8D@insalien.org> <2593444.KmheAe9J7N@ltgt.net> NNTP-Posting-Host: i121.resi.insa-lyon.fr Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: demo2.univ-lyon1.fr 994223298 6882 134.214.164.70 (4 Jul 2001 05:08:18 GMT) X-Complaints-To: abuse@univ-lyon1.fr NNTP-Posting-Date: 4 Jul 2001 05:08:18 GMT X-Mailer: Mozilla 4.76 [en] (Win98; U) X-Accept-Language: en