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
2
A
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
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.
Ich denke, dass das Gegenteil von dem, was das OP ist, bietet. –
Danke mzjn für den Tipp. Nic hat recht, aber ich denke, ich kann das in diese Richtung bringen. –
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? –