From: Jandia Cyril (cjandia@logfi.fr)
Date: 08/01/2002 - 15:36
Bonjour à tous,
Pour ceux que cela intéresse :
j'ai eu l'idée ("curiosité malsaine" ;o) de confronter "vite fait bien
fait(?)" les qq rares parsers XML (au nb de 4 à ma connaissance,
aujourd'hui) écrits en Javascript aux tests fournis (*) par James Clark
[xmltest];
Remarque 1 : attention! il ne s'agit pas d'un test de performances; mais
seulement du comportement du parser en cas de document XML mal formé
Remarque 2 :
notez que je n'ai (malheureusement) pu tirer d'informations utiles que sur
DEUX d'entre eux ([xml4script] - un projet [SourceForge] - et [espx] de
moi), les deux autres ([Xparse] et [JaSMin]), ne pouvant être testés
facilement, principalement à cause du fait que ceux-ci n'ont simplement pas
... de gestion d'erreur, même minimale...
enfin, "l'étalon" de mesure utilisé fut MSXML 3 SP1 (sous Windows 2000)
Conclusion (temporaire) : il y a encore du travail sur ESPX, mais je m'en
doutais un peu :^[ ...
(*) Pas tous, bien sûr : seulement certains de ceux traitant de la "bonne
formation" ("well-formedness") des documents XML "autonomes"
("standalone") - i.e., dans le répertoire "xmltest/not-wf/sa/" de [xmltest],
tests 001.xml à 053.xml (inclus)
[xmltest] ftp://ftp.jclark.com/pub/xml/xmltest.zip
[SourceForge] http://sourceforge.net/
[Xparse] http://www.jeremie.com/Dev/XML/
[xml4script] http://xmljs.sourceforge.net/
[JaSMin] http://sjoerd.editthispage.com/stories/storyReader$20
[espx] http://www.cjandia.com/2001/espx-tinyxsl/
Ces résultats seront mis en forme et disponibles en ligne (et éventuellement
complétés) ultérieurement; en attendant, voici les sorties obtenues :
(MSXML=52/53; XML4SCRIPT=9/53; ESPX=34/53)
(légende :
":=OK" indique que le parser a trouvé - A TORT - le document bien formé;
":=NO" indique que le parser a trouvé - AVEC RAISON - une erreur de
syntaxe - le message d'erreur éventuel suit;
":N/A" indique que le test en question A DU ETRE DESACTIVE - pour cause de
plantage du test sur l'entrée)
"L'étalon" d'abord, "MSXML" :
not-wf\sa\001.xml :=NO; error: A name was started with an invalid character.
not-wf\sa\002.xml :=NO; error: A name was started with an invalid character.
not-wf\sa\003.xml :=NO; error: Whitespace is not allowed at this location.
not-wf\sa\004.xml :=NO; error: Processing instruction was not closed.
not-wf\sa\005.xml :=NO; error: Processing instruction was not closed.
not-wf\sa\006.xml :=NO; error: Incorrect syntax was used in a comment.
not-wf\sa\007.xml :=NO; error: A semi colon character was expected.
not-wf\sa\008.xml :=NO; error: A name was started with an invalid character.
not-wf\sa\009.xml :=NO; error: An invalid character was found inside an
entity reference.
not-wf\sa\010.xml :=NO; error: Whitespace is not allowed at this location.
not-wf\sa\011.xml :=NO; error: A name contained an invalid character.
not-wf\sa\012.xml :=NO; error: A string literal was expected, but no opening
quote character was found.
not-wf\sa\013.xml :=NO; error: The character '<' cannot be used in an
attribute value.
not-wf\sa\014.xml :=NO; error: The character '<' cannot be used in an
attribute value.
not-wf\sa\015.xml :=NO; error: A string literal was expected, but no opening
quote character was found.
not-wf\sa\016.xml :=NO; error: A name was started with an invalid character.
not-wf\sa\017.xml :=NO; error: A CDATA section was not closed.
not-wf\sa\018.xml :=NO; error: An opening '[' character was expected.
not-wf\sa\019.xml :=NO; error: A name was started with an invalid character.
not-wf\sa\020.xml :=NO; error: Whitespace is not allowed at this location.
not-wf\sa\021.xml :=NO; error: A semi colon character was expected.
not-wf\sa\022.xml :=NO; error: An invalid character was found inside an
entity reference.
not-wf\sa\023.xml :=NO; error: A name was started with an invalid character.
not-wf\sa\024.xml :=NO; error: A name was started with an invalid character.
not-wf\sa\025.xml :=NO; error: The literal string ']]>' is not allowed in
element content.
not-wf\sa\026.xml :=NO; error: The literal string ']]>' is not allowed in
element content.
not-wf\sa\027.xml :=NO; error: A comment was not closed.
not-wf\sa\028.xml :=NO; error: Processing instruction was not closed.
not-wf\sa\029.xml :=NO; error: The literal string ']]>' is not allowed in
element content.
not-wf\sa\030.xml :=NO; error: An invalid character was found in text
content.
not-wf\sa\031.xml :=NO; error: An invalid character was found in text
content.
not-wf\sa\032.xml :=NO; error: An invalid character was found in text
content.
not-wf\sa\033.xml :=NO; error: An invalid character was found in text
content.
not-wf\sa\034.xml :=NO; error: An invalid character was found in text
content.
not-wf\sa\035.xml :=NO; error: Whitespace is not allowed at this location.
not-wf\sa\036.xml :=NO; error: Invalid at the top level of the document.
not-wf\sa\037.xml :=NO; error: Invalid at the top level of the document.
not-wf\sa\038.xml :=NO; error: Duplicate attribute.
not-wf\sa\039.xml :=NO; error: End tag 'aa' does not match the start tag
'a'.
not-wf\sa\040.xml :=NO; error: Only one top level element is allowed in an
XML document.
not-wf\sa\041.xml :=NO; error: Only one top level element is allowed in an
XML document.
not-wf\sa\042.xml :=NO; error: End tag was not expected at this location.
not-wf\sa\043.xml :=NO; error: Invalid at the top level of the document.
not-wf\sa\044.xml :=NO; error: Only one top level element is allowed in an
XML document.
not-wf\sa\045.xml :=NO; error: Whitespace is not allowed at this location.
not-wf\sa\046.xml :=NO; error: The character '>' was expected.
not-wf\sa\047.xml :=NO; error: Whitespace is not allowed at this location.
not-wf\sa\048.xml :=NO; error: Invalid at the top level of the document.
not-wf\sa\049.xml :=NO; error: End tag 'a' does not match the start tag
'doc'.
not-wf\sa\050.xml :N/A
not-wf\sa\051.xml :=NO; error: Invalid at the top level of the document.
not-wf\sa\052.xml :=NO; error: Invalid at the top level of the document.
not-wf\sa\053.xml :=NO; error: End tag 'DOC' does not match the start tag
'doc'.
"XML for SCRIPT" :
not-wf\sa\001.xml :N/A
not-wf\sa\002.xml :=OK
not-wf\sa\003.xml :=OK
not-wf\sa\004.xml :N/A
not-wf\sa\005.xml :N/A
not-wf\sa\006.xml :=OK
not-wf\sa\007.xml :=OK
not-wf\sa\008.xml :=OK
not-wf\sa\009.xml :=OK
not-wf\sa\010.xml :=OK
not-wf\sa\011.xml :N/A
not-wf\sa\012.xml :N/A
not-wf\sa\013.xml :N/A
not-wf\sa\014.xml :N/A
not-wf\sa\015.xml :N/A
not-wf\sa\016.xml :N/A
not-wf\sa\017.xml :=NO; error: ERROR: expected closing tag sequence: ]]>
not-wf\sa\018.xml :N/A
not-wf\sa\019.xml :=NO; error: ERROR: expected close doc
not-wf\sa\020.xml :=OK
not-wf\sa\021.xml :=OK
not-wf\sa\022.xml :=OK
not-wf\sa\023.xml :=OK
not-wf\sa\024.xml :=OK
not-wf\sa\025.xml :=OK
not-wf\sa\026.xml :=OK
not-wf\sa\027.xml :=NO; error: ERROR: expected closing tag sequence: -->
not-wf\sa\028.xml :N/A
not-wf\sa\029.xml :=OK
not-wf\sa\030.xml :=OK
not-wf\sa\031.xml :=OK
not-wf\sa\032.xml :=OK
not-wf\sa\033.xml :=OK
not-wf\sa\034.xml :=OK
not-wf\sa\035.xml :N/A
not-wf\sa\036.xml :=OK
not-wf\sa\037.xml :=OK
not-wf\sa\038.xml :=OK
not-wf\sa\039.xml :=NO; error: ERROR: expected closing a, found closing aa
not-wf\sa\040.xml :=OK
not-wf\sa\041.xml :=OK
not-wf\sa\042.xml :=NO; error: ERROR: singleton close tag
not-wf\sa\043.xml :=OK
not-wf\sa\044.xml :=OK
not-wf\sa\045.xml :N/A
not-wf\sa\046.xml :=NO; error: ERROR: expected closing a/</a, found closing
doc
not-wf\sa\047.xml :N/A
not-wf\sa\048.xml :=OK
not-wf\sa\049.xml :=NO; error: ERROR: expected closing doc, found closing a
not-wf\sa\050.xml :N/A
not-wf\sa\051.xml :=OK
not-wf\sa\052.xml :=NO; error: ERROR: expected document node, found: TEXT:
 
not-wf\sa\053.xml :=NO; error: ERROR: expected closing doc, found closing
DOC
"ESPX" :
not-wf\sa\001.xml :=NO; error: unexpected character; expected: '>' or '/>';
found: ?
not-wf\sa\002.xml :=NO; error: unexpected character; expected: '<TagName
...>'; found: '<. ...'
not-wf\sa\003.xml :=NO; error: unexpected character; expected: '<?PIName
...?>'; found: '<? ...'
not-wf\sa\004.xml :=NO; error: bad processing instruction; expected: '?>';
found: (eof)
not-wf\sa\005.xml :=NO; error: bad processing instruction; expected: '?>';
found: (eof)
not-wf\sa\006.xml :=NO; error: bad comment; found: '--' in comment
not-wf\sa\007.xml :=NO; error: bad entity reference; found: & no refc ...
not-wf\sa\008.xml :=OK
not-wf\sa\009.xml :=OK
not-wf\sa\010.xml :=NO; error: bad entity reference; found: & B ...
not-wf\sa\011.xml :=NO; error: missing equal sign between attribute name and
value; found: >
not-wf\sa\012.xml :=NO; error: bad attribute value delimiter; expected: " or
'; found: v
not-wf\sa\013.xml :=NO; error: no matching attribute value delimiter;
expected: "
not-wf\sa\014.xml :=NO; error: unexpected character; found: '<' in attribute
value
not-wf\sa\015.xml :=NO; error: bad attribute value delimiter; expected: " or
'; found: >
not-wf\sa\016.xml :=NO; error: unexpected character; expected: '>' or '/>';
found: "
not-wf\sa\017.xml :=NO; error: unexpected character; expected: ']]>'; found:
(eof)
not-wf\sa\018.xml :=NO; error: unexpected character; expected: '<TagName
...>'; found: '<! ...'
not-wf\sa\019.xml :=NO; error: bad end tag; expected: '</TagName>'; found:
(eof)
not-wf\sa\020.xml :=NO; error: bad entity reference; found: & B ...
not-wf\sa\021.xml :=NO; error: bad entity reference; found: &b ...
not-wf\sa\022.xml :=NO; error: bad entity reference; found: {: ...
not-wf\sa\023.xml :=NO; error: unexpected character; expected: '>' or '/>';
found: 1
not-wf\sa\024.xml :=NO; error: unexpected character; expected: '<TagName
...>'; found: '<1 ...'
not-wf\sa\025.xml :=OK
not-wf\sa\026.xml :=OK
not-wf\sa\027.xml :=NO; error: bad comment; expected: '-->'; found: (eof)
not-wf\sa\028.xml :=NO; error: bad processing instruction; expected: '?>';
found: (eof)
not-wf\sa\029.xml :=OK
not-wf\sa\030.xml :=OK
not-wf\sa\031.xml :=OK
not-wf\sa\032.xml :=OK
not-wf\sa\033.xml :=OK
not-wf\sa\034.xml :=OK
not-wf\sa\035.xml :=NO; error: unexpected character; expected: '<TagName
...>'; found: '< ...'
not-wf\sa\036.xml :=OK
not-wf\sa\037.xml :=OK
not-wf\sa\038.xml :=NO; error: duplicate attribute; found: 'x'
not-wf\sa\039.xml :=NO; error: bad end tag; expected: '</a>'; found: '</aa>'
not-wf\sa\040.xml :=OK
not-wf\sa\041.xml :=OK
not-wf\sa\042.xml :=OK
not-wf\sa\043.xml :=OK
not-wf\sa\044.xml :=OK
not-wf\sa\045.xml :=NO; error: bad start tag; expected: '>'; found: ''
not-wf\sa\046.xml :=NO; error: bad start tag; expected: '>'; found: '<'
not-wf\sa\047.xml :=NO; error: bad start tag; expected: '>'; found: ' '
not-wf\sa\048.xml :=OK
not-wf\sa\049.xml :=NO; error: bad end tag; expected: '</doc>'; found:
'</a>'
not-wf\sa\050.xml :N/A
not-wf\sa\051.xml :=NO; error: unexpected character; expected: '<TagName
...>'; found: '<! ...'
not-wf\sa\052.xml :=NO; error: unexpected character; expected: '<TagName
...>'; found: '<# ...'
not-wf\sa\053.xml :=NO; error: bad end tag; expected: '</doc>'; found:
'</DOC>'
Cordialement,
Cyril Jandia
--
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
|