2009-08-27 11 views
6

Masz dokument źródłowy xml, który używa przestrzeni nazw zawierających prefiksy i domyślną przestrzeń nazw. Po przekształceniu go za pomocą dokumentu XSLT wynikowy przetłumaczony dokument XML jest niepoprawny, tzn. Brakuje danych elementów z dokumentu źródłowego xml.Problem z XSLT, w którym dokument źródłowy xml używa domyślnej przestrzeni nazw

Po usunięciu "domyślnej przestrzeni nazw" z dokumentu źródłowego xml, transformacja działa zgodnie z oczekiwaniami.

Pytanie: czy istnieje sposób rozwiązania problemu bez konieczności edytowania domyślnego obszaru nazw z dokumentu źródłowego xml? To znaczy, dodaj rozwiązanie do dokumentu XSLT.

XML Document:

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

gdzie problemem jest domyślnej przestrzeni nazw xmlns = "http://www.zolldata.com/UDX"

Odpowiedz

4

Określ sam domyślnej przestrzeni nazw w dokumencie XSLT jeśli selektorów zrobić nie używaj prefiksów ani prefiksów dla wszystkich selektorów w XSLT, ale nie zapomnij o powiązaniu ich z domyślną przestrzenią nazw dokumentu XML.

+1

Dodałabym domyślny obszar nazw, xmlns = "http://www.zolldata.com/UDX", do mojego dokumentu XSLT. Jak mógłbym się połączyć? co ja wiążę? – Larry

+0

Próbowałem twojej pierwszej sugestii i to nie działa. Wygląda na to, że domyślna przestrzeń nazw MUSI zostać usunięta z pliku XML, aby XSLT działało (lub zostało poprawnie ustawione). Tak jak Larry, nie wiem, co masz na myśli przez "... nie zapomnij powiązać ich z domyślnym obszarem nazw". Zakładam, że oznacza to przedrostek "xmlns: z = ...", który działa tylko wtedy, gdy zamierzasz zmienić odpowiedź xml zamiast zajmować się istniejącym systemem, który poprawnie używa domyślnej przestrzeni nazw. – Justin