2010-02-08 4 views
2

Je suis sûr que c'est une question XML très basique, mais je ne trouve pas la réponse nulle part. Quel est le moyen le plus courant de se référer à un nœud XML particulier à plusieurs autres endroits dans le même document XML?Comment faire référence à des nœuds XML à partir de plusieurs endroits

Par exemple, considérons un document comme

<?xml version="1.0" encoding="ISO-8859-1"?> 
<library> 
    <author id="john"> 
    <name>John Brown</name> 
    </author> 
    <book> 
    <title>How To Peel Bananas In 10 Simple Steps</title> 
    <author ref="#john"/> 
    </book> 
    <book> 
    <title>Why Bananas Grow Upward</title> 
    <subtitle>How The Main World Religions View Banana Growth</subtitle> 
    <author ref="#john"/> 
    </book> 
</library> 

De toute évidence, le nœud auteur à l'intérieur des noeuds de livre est destiné à être une référence au nœud auteur haut niveau. Idéalement, lors du chargement d'un tel document dans un langage de programmation OO, l'attribut author d'un objet Book ferait directement référence au même objet Author que celui créé précédemment. De toute évidence, ma façon d'écrire ceci en XML est non standard et nécessite un travail supplémentaire après le chargement. Néanmoins, je suis sûr que les gens stockent des éléments de références croisées en XML tout le temps. Quelle est la meilleure et/ou la plus facile et/ou la plus "correcte" fonctionnalité pour faire quelque chose comme ça? Quelle est la meilleure façon de prendre en charge les normes de support, telles que XPath et les goûts?

J'ai lu à propos de XLink mais je ne suis pas sûr si c'est la meilleure solution - il semble aussi plutôt périmé et inutilisé (est-ce vrai)?

Répondre

-1

Le fichier XML publié est valide. Rien de mal avec plusieurs références au même élément. Votre question sur l'hydratation d'un modèle d'objet à partir de ce XML est-elle posée?

+0

Eh bien, je ne demande pas ce qui est valide, je demande ce qui est la meilleure pratique. Vous écrivez qu'il n'y a "rien de mal avec plusieurs références au même élément". Est-ce que cela signifie qu'il y a une façon standard de faire référence aux éléments, alors? Ai-je frappé par hasard? Ma question est * aussi * sur l'hydratation d'un modèle d'objet; il s'agit de la disposition XML préférée pour quelque chose qui a des références à l'intérieur, de sorte que l'hydratation des objets est également facile. – skrebbel

Questions connexes