2009-08-27 4 views
6

Ein XML-Quelldokument verwenden, das den Namespace mit Präfixen und einen Standardnamespace verwendet. Wenn ich es mit einem XSLT-Dokument transformiere, ist das resultierende übersetzte XML-Dokument falsch, dh Elementdaten aus dem Quell-XML-Dokument fehlen.Problem mit XSLT, in dem das XML-Quelldokument den Standardnamespace verwendet

Wenn ich den "Standard-Namespace" aus dem Quell-XML-Dokument entfernen, funktioniert die Umwandlung wie erwartet.

Frage: Gibt es eine Möglichkeit, Problem zu lösen, ohne den Standard-Namespace aus dem XML-Quelldokument zu bearbeiten? Das heißt, fügen Sie dem XSLT-Dokument die Lösung hinzu.

XML-Dokument:

<MyElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
      xmlns="http://www.zolldata.com/UDX"> 

, wo das Problem Standard-Namespace ist xmlns = "http://www.zolldata.com/UDX"

Antwort

4

gleichen Standard-Namespace in XSLT-Dokument angeben, ob Ihre Wähler tun Verwenden Sie keine Präfixe oder verwenden Sie Präfixe für alle Selektoren in der XSLT, aber vergessen Sie nicht, sie an den Standard-Namespace Ihres XML-Dokuments zu binden.

+1

Ich würde den Standard-Namespace, xmlns = "http://www.zolldata.com/UDX", zu meinem XSLT-Dokument hinzufügen. Wie würde ich binden? Was bin ich verbindlich? – Larry

+0

Ich habe deinen ersten Vorschlag ausprobiert und das funktioniert nicht. Es scheint, dass der Standard-Namespace aus dem XML-Code entfernt werden muss, damit das XSLT funktioniert (oder das Präfix korrekt vorangestellt wird). Wie Larry weiß ich nicht, was du mit "... vergesse nicht, sie an den Standard-Namespace zu binden". Ich gehe davon aus, dass dies bedeutet, dass es "xmlns: z = ..." vorangestellt wird, was nur funktioniert, wenn Sie die XML-Antwort ändern wollen, anstatt sich mit einem vorhandenen System auseinanderzusetzen, das einen Standard-Namespace gültig verwendet. – Justin

Verwandte Themen