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.

--
Sur le Web, tout de suite.
Herve AGNOUX - diaam informatique
http://www.diaam-informatique.com

Répondre à