Arbeiten mit Referenzen

miketech

Bekanntes Mitglied
Hallo zusammen,

ich muss derzeit manuell XML-Files einlesen, in denen Referenzen genutzt werden. Als Beispiel ein WSDL-File:

Code:
...
	<message name="KeywordSearchRequest">
		<!-- Messages for Amazon Web APIs -->
		<part name="KeywordSearchRequest" type="typens:KeywordRequest"/>
	</message>

<portType name="AmazonSearchPort">
		<!-- Port for Amazon Web APIs -->
		<operation name="KeywordSearchRequest">
			<input message="typens:KeywordSearchRequest"/>
			<output message="typens:KeywordSearchResponse"/>
		</operation>
</portType>
...

Wie man hier sieht, wird innerhalb der Operation eine Message referenziert. Wie finde ich nun diese Message am einfachsten? Muss ich den String des Attributs "message" bei input parsen und dann manuell ein Message-Element mit diesem Namen suchen? Oder gibt es hier eine effizientere Möglichkeit?

Interessant ist nämlich auch die Angabe des Prefix "typens". D.h. ich muss ja auch noch sicherstellen, dass sich diese Message in einem WSDL-Dokument mit diesem prefix bzw. dem dazugehörigen Namespace als TargetNamespace befindet.

Viele Grüße

Mike
 

miketech

Bekanntes Mitglied
Hallo zusammen,

danke für Eure Antworten. Unter normalen Umständen habt ihr natürlich absolut recht. Die WSDL-Datei ist aber nur ein Beispiel. Ich arbeite noch mit vielen anderen proprietären XML-Dateien, die ähnlich aufgebaut sind. Hier steht mir dann kein Framework zur Verfügung, ebenso kein XSD. Daher muss ich auch auf manuellem Wege zum Ziel kommen :)

Viele Grüße

Mike
 

Bleiglanz

Gesperrter Benutzer
...

Wie man hier sieht, wird innerhalb der Operation eine Message referenziert. Wie finde ich nun diese Message am einfachsten? Muss ich den String des Attributs "message" bei input parsen und dann manuell ein Message-Element mit diesem Namen suchen? Oder gibt es hier eine effizientere Möglichkeit?
Seh ich nicht, du könntest beim ersten Parsen (SAX?) eine java.util.Map mit relevanten Informationen anlegen.

Oder mit DOM und XPath nach dem Parsen relevante Sachen extrahieren.

Hängt von der Komplexität ab.
 

Neue Themen


Oben