Quelle est la différence entre localname et qname?
Lors de l'utilisation de SAX parser un fichier XML en Java, quelle est la différence entre les paramètres localname et qname SAX de méthodes telles que startElement(String uri, String localName,String qName, Attributes attributes)
?
Vous devez vous connecter pour publier un commentaire.
Le nom complet comprend à la fois le préfixe d'espace de noms et le nom local:
att1
etfoo:att2
.XML exemple
De Code Java:
att1
Attributs sans un préfixe d'espace de noms ne prennent pas l'espace de noms par défaut. Cela signifie alors que l'espace de noms pour le
root
élément est"http://www.example.com/DEFAULT"
, l'espace de noms pour leatt1
attribut est""
.att2
Généralement parlant, localname est le nom local, qui signifie à l'intérieur de l'espace de noms. qname, ou le nom qualifié, est le nom complet (y compris l'espace de noms). Par exemple, <a:b ...> aura un localname b, mais un qname a:b.
Ceci est cependant très général, et les paramètres-dépendant. Jetez un oeil à l'exemple à la fin de cette page pour plus approfondie exemple: exemple
Par défaut, un lecteur XML signale un URI d'espace de Noms et un localName pour chaque élément qui appartient à un espace de noms, à la fois le début et la fin de gestionnaire.
Considérons l'exemple suivant:
Avec la valeur par défaut SAX2 espace de Noms traitement, le lecteur XML serait un rapport de début et de fin de l'élément de l'événement avec l'URI d'espace de Noms http://www.w3.org/1999/xhtml et la localName rh. La plupart des XMLReader implémentations également rapport à l'original qName html:les rh, mais ce paramètre peut être simplement une chaîne vide (sauf pour les éléments qui ne sont pas dans un espace de noms).
http://www.saxproject.org/namespaces.html
{http://www.w3.org/1999/xhtml}hr
. Car le préfixe se lie à un élément d'un espace de noms, mais sa véritable chaîne de caractères doit être d'aucune importance. Qualifié = espace de noms et le nom local.prefix+":"+localname
. (Mais vous pouvez le découvrir en regardant dans la Javadoc, ou à la sortie d'un analyseur - pourquoi demandez-vous ici?)