2012-10-09 4 views
1

Salutations collègues programmeurs!JaxB unmarshalling - créer une référence à l'objet

Je rencontre un problème majeur lors de la suppression d'un fichier XML dans un objet. J'ai besoin de créer une référence à un objet. Comment puis-je l'accomplir? J'ai essayé d'utiliser la transformation XSL mais en raison de l'occurrence de cycle ce n'était pas une bonne approche. Je suis 100% sûr qu'il ya un moyen facile .. Voici mon XML:

<report> 
    <subject> 
     <subjectId>1</subjectId> 
     <name>John</name> 
     <surname>Doe</surname> 
    </subject> 
    <subject> 
     <subjectId>2</subjectId> 
     <name>Frank</name> 
     <surname>Timothy</surname> 
    </subject> 
    <individual> 
     <individualId>10</individualId> 
     <name>Isaac</name> 
     <surname>Newton</surname> 
     <co-worker> 
      <subject> 
       <subjectId>1</subjectId> 
       <inXml>true</inXml> 
      </subject> 
      <subject> 
       <subjectId>2</subjectId> 
       <inXml>true</inXml> 
      </subject> 
     </co-worker> 
    </individual> 

    <owner> 
     <subject> 
      <subjectId>2</subjectId> 
      <inXml>true</inXml> 
     </subject> 
     <share>100</share> 
    </owner> 
</report> 

Je dois créer référence de « sujet » ou « individuel » avec inXml = true. Ce drapeau me dit si nous avons une entité avec cet ID dans le XML. Merci beaucoup pour votre aide :)

Répondre

2

Vous pouvez utiliser @XmlID/@XmlIDREF pour mapper des relations basées sur des clés dans votre document XML.

Exemple

+0

qui ne va pas aider, bcoz je ne sais pas où cette "référence" sera occure. Si "sujet" apparaît pour la toute première fois dans le XML, il est mis toutes les données, s'il apparaît 2+, il y a un drapeau dansXml + ID –

+0

@MironBe - Ce qui suit peut être ce que vous cherchez: http : //blog.bdoughan.com/2011/09/mixing-nesting-and-references-with.html –

+0

Je crois que c'est ce dont j'ai besoin .. mais comment puis-je trouver un certain sujet et obtenir son identité? Le XML que j'ai attaché est TRES simple pour illustrer le problème - dans la vraie vie, je reçois plus de 300kb de données avec BEAUCOUP de noeuds imbriqués (jusqu'à 5 niveaux de la racine) et comme je recherchais l'article que vous avez fourni - Je suis venu à travers le problème - dois-je copier toutes les données de qui est déjà "en mémoire" à nouveau, adapté ? –