From: Christian David (cdavid@rennes.jouve.fr)
Date: 25/09/2002 - 11:13
A priori le fragment qui suit n'est pas conforme à la définition XML puisque
AAA possède un contenu "mixed" et que dans ce cas tout le texte doit être
avant les tags. Néanmoins aucun parseur(en mode non validant et donc sans
DTD) ne semble détecter ce problème.
ex 1 : xml seul
test1.xml
<?xml version="1.0" encoding="UTF-8"?>
<AAA>
blablabla
<BBB>blablabla</BBB>
blablabla
</AAA>
==> Ex avec msxml en parsing non validant pas d'erreur détectée
Question : Est-ce normal ?
ex2 : test2.xml + test2.dtd
test2.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE AAA SYSTEM "test2.dtd">
<AAA>
blablabla
<BBB>blablabla</BBB>
blablabla
</AAA>
test2.dtd :
<!ELEMENT AAA (#PCDATA | BBB)*>
<!ELEMENT BBB (#PCDATA)>
==> Ex avec msxml en parsing VALIDANT pas d'erreur détectée
Question : Est-ce normal ?
ex3 : test3.xml + test3.dtd
test3.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE AAA SYSTEM "test3.dtd">
<AAA>
blablabla
<BBB>blablabla</BBB>
blablabla
</AAA>
test3.dtd :
<!ELEMENT AAA (#PCDATA | BBB |#PCDATA)>
<!ELEMENT BBB (#PCDATA)>
==> Ex avec msxml en parsing VALIDANT :
erreur détectée :
A name was started with an invalid character.
<!ELEMENT AAA (#PCDATA | BBB | #PCDATA )>
Ceci me parait normal, ce qui est suprenant est que la DTD2 permet d'avoir
le XML ce qui est défini dans la DTD 3 ?
Comment peut-on controler ces ambiguités ?
Connaissez-vous des outils permettant de controler de telles ambiguités au
niveau du XML et de la DTD.
A priori une telle ambiguité ne permet pas par exemple à un translateur XSLT
de pouvoir recuperer à coup sur tous les textes.
ex : recuperer tous les textes de AAA et BBB mais pas CCC ??? pas simple...
test4.xml
<AAA>
blablabla
<BBB>blablabla<CCC>blablabla</CCC>blablabla
</BBB>
blablabla
<CCC>blablabla</CCC>
blablabla
<BBB>blablabla</BBB>
blablabla
<CCC>blablabla</CCC>
blablabla
</AAA>
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|