URI innerhalb einer XML-Datei
lima-city → Forum → Programmiersprachen → Sonstige Programmiersprachen
abschneiden
ansprechen
apache
code
datei
dokument
dokumentation
dom
element
erwarten
guter ansatz
methode
parameter
regel
set
setting
string
struktur
url
verweis
-
Ich versuche einen Abschnitt innerhalb eines XML-Dokuments zu signieren. Dazu brauche ich eine URI zu diesem Element.
Hier mal eine Beispielhafte XML-Struktur
<A> <B> <B1/> <B2/> </B> <C> <C1/> <C2/> </C> <D> <D1/> <D2/> </D> </A>
Ich würde jetzt gerne eine URI zu <C> Element haben.
Gibt es eine Möglichkeit, mit der ich genau dieses Element ansprechen kann.
Die Signierung möchte ich mit einem Java-Programm machen. Als API verwende ich das Apache XML-Projekt "Santuario" -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich würde dir empfehlen dich in die Dokumentation von der API einzulesen, denn nur dann kann man die Frage in Bezug auf die API beantworten. Alternativ kannst du es direkt übers DOM oder XPath machen, falls die API jene Vorgehensweisen unterstützen.
-
Hi,
in der API gibt es eine addDocument() Methode. Diese Methode besitzt einen String Parameter (refURI) mit der URI zu der Datei, die signiert werden soll. Ich würde jetzt gern wissen, ob man mit dieser URI auch ein bestimmtest XML Element innerhalb einer Datei angeben kann oder kann man mit einer URI nur auf eine Datei und nicht auf den Inhalt verweisen.
-
hier der Link zur API
http://santuario.apache.org/Java/api/index.html
Ich glaube XPath ist ein guter Ansatz.
Bei der zu vor genannten addDocument Function kann man auch Transformations übergeben.
hier mal ein Beispiel:
// Set XPATH and adding as a transform XPathContainer xpathContainer = new XPathContainer(doc); xpathContainer.setXPathNamespaceContext("ds", Constants.SignatureSpecNS); // Setting elements 'C' to be signed String xpath = "/A/C"; xpathContainer.setXPath(xpath); transforms.addTransform(Transforms.TRANSFORM_XPATH, xpathContainer.getElementPlusReturns()); // Setting 'to be signed' element sig.addDocument("",transforms,Constants.ALGO_ID_DIGEST_SHA1);
Beim ausführen des obigen Codes erhalte ich einen
NoClassDefFoundError: org.apache.xpath.CachedXPathAPI
Mal sehen woran das jetzt schon wieder liegt.
... Danke für den XPath Hinweis -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage