Das XPath Protocol ist ein Java-URL-Protocol zum Selektieren von Bestandteilen aus einem XML-Dokument. Das XPath Protocol ist Bestandteil der Design-Utils und damit aus dem Intersult Maven Repository zu beziehen.

Hintergrund#

In vielen Fällen werden XML-Dokumente durch URLs referenziert, etwa aus der pom.xml beim Generieren von Java-Klassen aus WSDL- oder XSD-Dateien, Induzieren eines Schemas durch Abraxas oder dem Laden von XML-Dateien für verschiedene Zwecke.

Bisher konnte nur das gesamte Dokument verarbeitet werden oder es musste manuell zwischengespeichert und mit dem Text-Editor bearbeitet werden. Oder die Transformation musste implementiert werden. Alles zu aufwändig für die einfache Anforderung. Deshalb hat die Intersult das XPath Protocol entwickelt.

Anwendung#

Das XPath Protocol ist an das JAR-Protocol angelehnt:
xpath:<URL>!<XPath Expression>

also zum Beispiel:

xpath:http://localhost/test.xml!/root/some-node[2]

Dadurch wird ein neues XML-Dokument erzeugt, dass direkt unter diesem Link referenzierbar ist.

Beispiel#

Java, geschachteltes Java-Protocol#

Mit dem JavaProtocol kann auf Ressourcen aus dem ClassPath zugegriffen werden. Dazu kann das XPath Protocol verschachtelte Protokolle verwenden:
	URL url = new URL(null, "xpath:java:/test.xml!/root/some-node[1]/text", new XPathProtocol(new JavaProtocol()));
	URLConnection connection = url.openConnection();

Die zurückgegebene URLConnection ist dabei vom Typ com.intersult.util.net.XPathURLConnection.