2010-12-30 24 views
2

Ich habe eine Reihe von XML-Dateien (DocBook, um genau zu sein). Diese verwenden XML-Einschlüsse, auch bekannt als XInclude, um sich gegenseitig zu referenzieren. Wie kann man anhand einer dieser XML-Dateien die Liste der Dateien ermitteln, die darauf verweisen? Ich versuche, den Abhängigkeitsbaum für diese Datei aufzubauen. Anders gesagt, wenn ich eine gegebene XML-Datei ändere, wie kann ich die Liste anderer XML-Dateien berechnen, die ausgeführt werden?Auflösung der Abhängigkeitsbaumstruktur für eine Menge von XML-Dateien mit XIncludes

Antwort

4

Im SVN-Repository des DocBook-SourceForge-Projekts gibt es ein xmldepend.xsl-Stylesheet-Modul. Vielleicht ist es das, was Sie suchen:

http://docbook.svn.sourceforge.net/viewvc/docbook/trunk/contrib/xsl/xmldepend/xmldepend.xsl

+0

Ich denke, dass das Gegenteil von dem, was das OP ist, bietet. –

+0

Danke mzjn für den Tipp. Nic hat recht, aber ich denke, ich kann das in diese Richtung bringen. –

+0

Ich habe dies ausprobiert und es führt erfolgreich alle Grafiken eine ähnliche Dateien, aber nicht die enthaltenen XML-Dateien selbst. Ich denke, dies liegt daran, dass diese Includes von org.apache.xml.resolver.tools.CatalogResolver upstream aufgelöst werden. Irgendwelche Ideen, wie ich diese zusätzlichen Informationen bekommen kann? –

2

die eine Art und Weise Beziehungen definiert durch XInclude Da gibt es keine direkte XML-basierte Möglichkeit, dies zu tun. Ehrlich gesagt würde ich wahrscheinlich eine Dateisuche mit find oder grep machen.

Sie könnten in der Top-Level-DocBook-Datei eine Variante auf dem Stylesheet verwenden, auf die @mzjn Sie hinweist, um alle Abhängigkeiten im zusammengesetzten Dokument zu generieren und diejenigen zu extrahieren, in denen ein Dokument von der Datei abhängt, die Sie gerade interessieren in.