Cliquez ici.
Accueil
 chercher             Plan du site             Info (English version) 
L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.Les listes de discussions XMLfr sont à votre disposition pour réagir sur nos articles ou simplement poser une question.Si vous ètes passionnée(e) par XML, pourquoi ne pas en faire votre métier ?XMLfr n'est heureusement pas le seul site où l'on parle de XML. Découvrez les autres grâce à XMLfr et à l'ODP.Les partenaires grâce auxquels XMLfr peut se développer.Pour tout savoir sur XMLfr.XMLfr sans fil, c'est possible !Pour ceux qui veulent vraiment en savoir plus sur XML.L'index du site.
 Commentaires et questions non techniques.Commentaires et questions techniques.

 
Cliquez ici.

xml tech : Technologies XML

[xml-tech] Re: SAX : localName et qName

[xml-tech] Re: SAX : localName et qName

Auteur: Laurent CAPRANI <caprani@altern.org>
Date: 06/02/2002 - 22:37
X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2911.0)

Bonjour Hervé,

1. C'est d'abord une question SAX.
Les informations fournies aux gestionnaires SAX dépendent de la
configuration du "lecteur" (XMLReader).
Cette configuration est conditionnée par les fonctionnalités (features)
mentionnées dans la section "namespaces" de la norme[1]. Voyez le tableau au
§ "Configuring Namespace Support".
La configuration la plus courante est sans doute ".../namespaces" = faux et
".../namespace-prefixes" = vrai.

2. JAXP
Je trouve que JAXP ajoute plus de confusion et de bugs (actuellement)
qu'autre chose.
Par exemple, je dispose d'une configuration assez courante de Xalan:
java org.apache.xerces.framework.Version -> "Xerces 1.4.0"
java org.apache.xalan.processor.XSLProcessorVersion -> "Xalan Java Version
2.1.0"

Je fais rouler votre code et voici le résultat:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
        at saxessai.main(saxessai.java:18)

Je préfère m'en tenir à des formules 100% pur SAX, plus robustes:

analyseur = XMLReaderFactory.createXMLReader();
analyseur.setFeature("http://xml.org/sax/features/namespaces", false);
analyseur.setFeature("http://xml.org/sax/features/namespace-prefixes",
true);
analyseur.setFeature("http://xml.org/sax/features/validation", false);
analyseur.setContentHandler(gestionnaire);
analyseur.parse(source);

3. Des références et des échantillons de code
J'ai inscrit en ligne quelques références[réf] (pour mon cours "XML avancé:
SAX+DOM").
Je recommande particulièrement les cours de Elliotte Rusty Harold.
Pour ceux qui veulent faire des copier/coller, j'ai en ligne quelques
échantillons de code[codes] assez académiques.
On trouve également en ligne les exemples du livre « XML : Grand Livre » de
MICRO APPLICATION[MA].

-- Laurent CAPRANI
   Montréal

[1] http://sax.sourceforge.net/?selected=namespaces
[réf] http://formation.espacecourbe.com/caprani/XML%20avance/
[codes] http://formation.espacecourbe.com/caprani/XML%20avance/Exercices.zip
et http://formation.espacecourbe.com/caprani/Outils.zip
[MA] http://microapp.com/exemples/3057/3057.zip
et http://microapp.com/sommaires/3057.pdf

> -----Message d'origine-----
> De : xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org]De la
> part de Herve AGNOUX
> Envoyé : 6 février, 2002 09:50
> À : xml-tech@xmlfr.org
> Objet : [xml-tech] SAX : localName et qName
>
>
> Hum ! Une question typique Java, bien que très orientée XML ! A ma
> défense, je l'ai déjà posée sur java@u-strasbg.fr, et j'ai pas eu de
> réponse. Aurai-je plus de chance avec vous ? Merci d'avance.
>
> Pourriez-vous m'expliquer une différence de comportement d'un
> analyseur SAX ?
>
> Je fais passer le fichier XML suivant :
>
> <?xml version="1.0" encoding="ISO-8859-1"?>
>
> <zozo> </zozo>
>
> ... dans le parser SAX de jaxp. J'affiche les parametres de la
> methode startElement de mon pilote sax. J'obtiens :
>
> uri=
>
> localName=zozo
>
> qName=zozo
>
> Puis je fais pareil avec Xalan J 2.2.0. J'obtiens :
>
> uri=
>
> localName=
>
> qName=zozo
>
> Vous remarquerez que les valeurs de localName ne sont pas les mêmes.
> Qui a raison ? Que dois-je faire pour avoir un comportement à peu
> près stable en fonction des parsers sax ? (je voudrais tout
> simplement traiter une balise XML ! Est-ce que qName c'est fiable !?
> )
>
> Voici mon programme java (excusez le coté frugal, c'est pour la démo)
> :
>
> ==>
>
> import javax.xml.parsers.ParserConfigurationException; import
> javax.xml.parsers.SAXParser; import
> javax.xml.parsers.SAXParserFactory;
>
> import org.xml.sax.Attributes; import org.xml.sax.SAXException;
> import org.xml.sax.SAXParseException; import
> org.xml.sax.helpers.AttributesImpl;
>
> public class saxessai { private PiloteSAX monSAX;
>
> public saxessai(String nomFichierXML) throws Exception {
> SAXParserFactory saxpf = SAXParserFactory.newInstance();
> SAXParser saxp = saxpf.newSAXParser(); monSAX = new PiloteSAX();
> saxp.parse(nomFichierXML, monSAX); }
>
> public static void main(String args[]) throws Exception { new
> saxessai(args[0]); }
>
> private class PiloteSAX extends org.xml.sax.helpers.DefaultHandler
> { public void startElement (String uri, String localName,
> String qName, Attributes attributes) throws SAXException {
> System.out.println("uri="+uri+
> "\nlocalName="+localName+ "\nqName="+qName);
> } } }
>
> Pour le lancer il faut faire java saxessai <mon fichier xml>
>
> Merci d'avance.

--
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)
Received on Wed Feb 6 23:33:21 2002

Archive générée par hypermail 2.1.8 le 13/09/2005 - 15:52 UTC

webmaster@xmlfr.org

 

xml tech

Discussions techniques au sujet de XML.

Cette liste est à votre disposition pour discuter en français de tout sujet technique lié à XML.



Devenez rédacteur <XML>fr et contribuez au développement du xml francophone !
Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot@online.fr  

Conception, réalisation et hébergement