2009-04-17 7 views
3

J'ai eu de la difficulté avec Xerces C++ et mon manque de familiarité avec XML, mais j'ai besoin d'utiliser XML pour un projet sur lequel je travaille. Ma question est comment puis-je sérialiser des parties d'une arborescence DOM que j'ai déjà analysée et créée à partir d'un document d'instance XML (validé par rapport à un schéma que j'ai écrit) afin de créer de nombreux nouveaux documents d'instance l'élément racine du document original) d'une manière qu'ils restent valides contre mon schéma? Pour être plus précis, j'ai un grand document d'instance avec des milliers d'ensembles contenus dans un seul élément racine que j'ai besoin de placer individuellement dans des fichiers séparés pour un traitement ultérieur. Fondamentalement, un grand nombre d'ensembles qui doivent chacun être placés dans des fichiers individuels et toujours valider séparément.Sérialisation XML de portions DOM avec Xerces C++

Je suis perdu sur l'ensemble du processus de la façon de le faire. Je n'ai pas eu de chance de trouver des exemples qui sérialisent des parties d'un arbre DOM et je trouve que beaucoup de la terminologie entourant la documentation XML n'est pas très utile.

+1

Juste pour quelqu'un là-bas en regardant cela, il semble que DOMWriter a été déprécié en faveur de DOMLSSerializer dans Xerces C++: http://xerces.apache.org/xerces-c/program-dom-3.html#DOMLSSerializer Je pensais juste que je voudrais sauver d'autres personnes la douleur de trouver cela par eux-mêmes :) –

+0

merci pour la redirection. pas si évident quand on plonge dans les xerces. –

Répondre

3

L'article this (Section: Validation de schéma XML utilisant la sérialisation des grammaires sur le disque) aide-t-il? Nous avons utilisé avec succès le MemBufFormat décrit here.

+0

J'ai trouvé le premier lien par moi-même à quelques reprises, et même s'il est utile en général, il ne correspond pas vraiment à ce que j'essaie de faire. Votre deuxième lien semble être presque exactement ce que je cherchais, mais je ne veux pas sérialiser l'ensemble de l'arbre, seulement des parties de celui-ci. Je pense que cela me prend sur la bonne voie, alors merci beaucoup! –

+0

Un sous-ensemble d'un XML bien formé sera également un XML bien formé - alors bonne chance avec ça! (N'oubliez pas de mentionner si vous avez vu quelque chose - nos réponses seront moins redondantes.) – dirkgently

+0

Oui, je l'ai déjà entendu, donc j'espère que la validation fonctionnera pour le mieux par défaut. Je pense que je vais essayer d'utiliser la sérialisation LocalFileFormatTarget pour commencer. Je dois juste trouver le meilleur moyen d'obtenir les données dont j'ai besoin. Si je sérialise un DOMNode, obtiendra-t-il aussi tous ses sous-éléments, attributs et données ou dois-je descendre plus loin dans l'arborescence de chacun? Merci encore. –

Questions connexes