9
votes

Java XML intégré

Java a-t-il une bibliothèque XML intégrée pour générer et analyser des documents? Sinon, quelle tierce partie devrais-je utiliser?


3 commentaires

Il y a une pléthore de frameworks XML pour Java. Peut-être que vous allez nous dire un peu de ce dont vous en avez besoin, cela nous aiderait à trouver le meilleur cadre. Juste pour mentionner quelques outils / frameworks Java XML: Xmlbeans, Castor, Jixb, Jaxb, Stax, Sax, Dom, XPath. Un bon point de départ serait de regarder Jaxb ou l'article Wikipedia à en.wikipedia.org/wiki / XML # Programmation_Interfaces


La plupart des réponses ici sont en train de mélanger la mise en œuvre, l'API et la bibliothèque. Voulez-vous des réponses de bibliothèque (XALAN, XERCES, SAXON, JDOM) ou API (JAXB) ou des implémentations (DOM, SAX, STAX)?


@DACRACOT: Si vous allez scinder les cheveux, DOM et SAX sont des API et non des implémentations. (Preuve: les paquets "Org.w3c.dom *" et "Org.xml.Sax" sont principalement des interfaces.) Et si vous allez distinguer entre une bibliothèque et une implémentation, vous devez expliquer la distinction.


11 Réponses :


0
votes

Vous pouvez consulter le package Javax.xml, qui contient tout ce dont vous avez besoin pour travailler avec des documents XML en Java ...


1 commentaires

javax.xml semble seulement être des interfaces définissant une bibliothèque XML, rien ne s'applique réellement



2
votes

oui. Java contient javax.xml bibliothèque. Vous pouvez commander des échantillons de Sun's API Java pour les échantillons de code XML .

Cependant, j'aimerai personnellement utiliser JDOM bibliothèque .


0 commentaires

1
votes

javax.xml package contient la solution XML natif de Java qui est en fait une version spéciale de XERCES . Vous pouvez faire ce que vous avez demandé avec cela, cependant, utilisant des bibliothèques tierces telles que JDOM fait beaucoup de processus plus facile.


0 commentaires

7
votes

Le Sun Java Runtime est livré avec les implémentations XERCES et XALAN fournissant la possibilité d'analyser XML (via les intications DOM et SAX), et effectuez également des transformations XSL et exécuter des requêtes XPath.

Cependant, il est préférable d'utiliser JAXP API pour travailler sur XML, puisque JAXP vous permet de ne pas vous inquiéter de la mise en œuvre sous-jacente utilisée (Xerces ou Crimson ou tout autre). Lorsque vous utilisez JAXP, à l'exécution, le JRE utilisera le fournisseur de services qu'il peut localiser, pour effectuer les opérations nécessaires. Comme indiqué précédemment, Xerces / Xalan sera utilisé car il est expédié avec le Sun Jre (pas d'autres cependant), vous n'avez donc pas à télécharger et à installer un fournisseur spécifique (par exemple, une version différente de Xerces ou de Crimson).

Un didacticiel de base Jaxp peut être trouvé dans Le J2EE 1.4 Tutoriel (son du tutoriel J2EE, mais cela aidera).

Notez que les implémentations XERCES / XALAN fournies par le Sun Jre, ne seront pas trouvées dans les org.apache.xerces. * ou org.apache.xalan. * Packages. Au lieu de cela, ils seront présents dans le com.sun.org.apache.xerces. * Et com.sun.org.apache.xalan. * Packages.

Au fait, JDOM n'est pas un analyseur XML - il utilisera l'analyseur qui lui est fourni par JAXP afin de vous fournir une abstraction plus facile à utiliser.


1 commentaires

Xerces et Xalan sont des bibliothèques.



4
votes

oui. Il a deux options dans le package Javax.xml: DOM construit des documents en mémoire et SAX est une approche basée sur des événements.

Vous voudrez peut-être aussi regarder JDOM, une bibliothèque tierce qui offre une combinaison des deux, et peut être plus facile à utiliser.


2 commentaires

DOM et SAX sont des implémentations. JDOM est une bibliothèque avec sa propre API et une API unique comme API.


En fait, DOM et SAX seraient des interfaces de programmation et non des implémentations.



1
votes

regarder Jax-B C'est de plus en plus la " Standard "façon de faire un traitement XML. Utilise Java Annotations pour simplifier le modèle de programmation. La référence donne un code d'échantillon pour la lecture et l'écriture de XML.


0 commentaires

0
votes

API Java pour le traitement XML (JAXP) fait partie de la bibliothèque standard Javase. JAXP vous permet de coder contre l'interface standard et de choisir la mise en œuvre de l'analyseur ultérieurement si nécessaire.

L'API Java pour le traitement XML, ou JAXP FOR COURT, Permet des applications Pour analyser et transformer des documents XML en utilisant une API indépendante d'un Processeur XML particulier la mise en oeuvre. JAXP fournit également un caractéristique de la maintenance qui permet Applications à basculer facilement entre Processeur XML particulier implémentations.


0 commentaires

1
votes

Java vient avec un grand ensemble de colis et de classes pour gérer XML. Celles-ci font partie de l'édition standard JDK et situées sous le package Javax.xml.

En plus de lire xml et l'écrire avec DOM ou sax , ces packages fonctionnent également Transformations XSL , Jax-B Objet Marshalling et Unmarshalling, XPath Traitement et services Web savon manipulation. Je vous conseille de en savoir plus sur ceux-ci en ligne dans d'excellents tutoriels de Sun.


0 commentaires

0
votes

Vous pouvez utiliser Stax (Streaming API pour XML) http://fr.wikipedia.org/wiki/stax http://www.xml.com/pub/a/ 2003/09/17 / stax.html https://sjsxp.dev.java.net/

Stax est optimisé pour traiter de gros fichiers XML, sans avoir provoqué un problème OOM (hors de mémoire) :)


0 commentaires

0
votes

Comme c'est dit ci-dessus ... Le SDK de Java vient maintenant avec Xerces et Xalan. Xalan implémente uniquement la version 1.0 de l'API XSLT, donc si vous voulez 2.0, vous devez regarder Saxon de Michael Kay.


0 commentaires

1
votes

Je ne peux pas vous dire lequel utiliser (peu d'exigences spécifiées, et là sont une douzaine de bibliothèques), mais je considérerais sérieusement xom ( ici ).

Écrit par Eliotte Rusty Harold, il est assez complet en termes de xml spec, et généralement excellent. J'ai trouvé très facile à utiliser. Voir le Lien ci-dessus pour la motivation et la critique de Harold d'autres solutions.


0 commentaires