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.