Wie am geschicktesten mehrere XML Datei handhaben

bloodyjens

Grünschnabel
Hallo.

Zur Zeit habe ich zwei XML Files. In der einen wird per Servlet die andere drangehängt.

Jetzt soll die 2. File wiederrum in X kleinere XML Files aufgeteilt werden.
Leider weis ich nicht genau wie man das am besten anstellt.

Es ist evtl. auch möglich das es zu den kleinen wiederum "Kinder" gibt.

Also ich hab eine Haupt-XML File, in der ein paar allg. Sachen stehen.
In diese wird z.Z. eine weitere XML Datei eingefügt (per Servlet)... in dieser zweiten XML Datei stehen verschiedene Bereiche mit Werten.

Diese sollen nun aufgeteilt werden.
Jeder Bereich soll in einer eigenen XML Datei stehen.
Und die XML Datei für jeden Bereich ist noch mal in Unterbereiche (sollen auch wieder andere XML Dateien) unterteilt.

Hat jemand schon Erfahrungen mit solchen Sachen?

Vielen Dank !
 
Hallo!

Was ist denn nun genau das Problem?
Ich meine auf die Idee im Hauptdokument Sektionen einzuführen die du dann "on-the-fly" hinzulinken kannst bist du ja schon selbst gekommen.

Wie wärs denn wenn du dir zu begin einen DOM Baum aufbaust in den du das Hauptdokument abbildest. Später traversierst du dann einfach den Baum bis du an einer "passenden" Stelle (Sektion) angekommen bist und erzeugst ein neues Child vom Typ deines zweiten XML Files ... bzw. dessen "Schnippsel" bzw. Unterteilungen. Den dom Baum kannst du ja dann in die Session hängen und bei bedarf erweitern...

Gruß Tom
 
Ich verstehe deine Anforderungen nicht ;o)

Wenn die Dateien alle im selben Verzeichnis liegen kannst du sie mittels XSLT und dem Ausdruck document(...) vermengen. Du kannst sie auch mit einem eigenen Programm in der Sprache deiner Wahl zur monolitischen Version überführen.

Du kannst sie auch per XInclude zusammenhalten, bist hierfür aber auf Parser angewiesen die dieses Konstrukt unterstützen. (Apache Xerces bietet rudimentären Support. Vermutlich für deinen Fall ausreichend).

Oder etwa über Entities der DTD?

Es gibt massenhaft Möglichkeiten um dieser Anforderung gerecht zu werden. Du selbst mußt dir einfach dessen im klaren werden, was du nun eigentlich machen willst.

Es ist aber in der Tat etwas, das schwieriger ist als es sein müsste, da XInclude leider stiefmütterlich behandelt wird. Er wäre der hierfür vorgesehene Standard. Das Konzept meines aktuellen Projektes merge ich z.b. bewußt über eine xsl.

Für deinen Fall könnte es aber sowieso vielleicht einfacher sein, direkt die Fragmente zu verwenden, weshalb also zuerst wieder monolithisch zusammenmergen? Mit JDom und XPath kann man wunderbar auf die einzeldokumente zugreifen.

Du kannst auch prima deine eigene XInclude lib includieren. Mittels XPath holst du dir alle "include" Elemente des Hauptdokumentes. Diese Elementliste iterierst du und hängst an jeder stelle das entsprechende dort notierte Element in dein Dokument ein. (Müsste aber wie schon gesagt der Xerces direkt können. Der im jsdk integrierte kann es nicht. Wie hieß der nochmal? Der veraltete von Sun .. war irgendetwas mit c. So oder so der Xerces wird in Zukunft sowieso im jsdk einzug halten weshalb du dich ruhig an Ihn gewöhnen kannst. )

Ah Crimson hieß er. Der kann mit XInclude nicht umgehen ;o)

cybi
 
Zurück