2012-05-20 4 views
-1

xsl을 통해 하나의 unifrom xml 문서로 변환해야하는 여러 xml 문서를 수신했습니다. 또한이 결과 XML 문서에 네임 스페이스와 스키마를 추가해야합니다. 내 문제는 내가 xsl 스타일 시트를 통해이 문서에 스키마와 네임 스페이스를 추가해야하고 어떻게 해야할지 모른다는 것이다. 네임 스페이스를 추가하는 방법을 알기 위해 먼 길을 찾아 왔지만 xml 결과 문서에 스타일 시트를 통해 내 스키마의 위치를 ​​제공하려면 어떻게해야합니까?xslt 1.0을 통해 네임 스페이스 및 스키마를 추가하는 방법

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
     xmlns:main="http://www.vm.com/main" 
     xmlns:teleprompt ="http://www.vm.com/teleprompt" 
     xmlns:warner ="http://www.vm.com/warner" 
     xsi:schemaLocation="http://www.vm.com/main mainSchema.xsd" 
     version="1.0"> 

그리고 이것이 내가 네임 스페이스를 사용 할 위치를 내가 가진 무엇 :

내가 때문에의 schemaLocation의 작동하지 않는 순간에 내 스타일이 무엇인지입니다

<album teleprompt:type="simple" teleprompt:href="http://www.vm.com/teleprompt"> 

트리의 모든 항목에 적용하려면 위 코드가 필요합니다.

이러한 앨범 중 네 개가 있으며 두 개만 네임 스페이스가 필요합니다. 제 스타일 시트에서를 사용하지 않으므로 템플릿으로 요소를 해독하는 해답을주지 마십시오.

도움을 주셔서 감사합니다.

+0

다른 XML 입력 버전의 샘플을 게시 한 다음 XSLT를 사용하여 생성하려는 해당 출력을 게시 할 것을 고려하십시오. XSLT에 대한 도움을 요청했지만 템플릿을 사용하여 솔루션을 게시하지 않도록 요청하는 것은 다소 이상합니다. 템플릿없이 스타일 시트를 작성하는 방법은 무엇입니까? 스타일 시트 코드를 수정하는 데 도움을주기를 원하면 루트 요소의 시작 태그뿐만 아니라 코드도 알려주십시오. –

답변

0

'xsi'에 대한 네임 스페이스 바인딩을 추가해야합니다 (http://www.w3.org/2001/XMLSchema-instance).

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:main="http://www.vm.com/main" 
    xmlns:teleprompt ="http://www.vm.com/teleprompt" 
    xmlns:warner ="http://www.vm.com/warner" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.vm.com/main mainSchema.xsd" 
    version="1.0"> 

물론 템플릿을 사용하지 않고 성공하는 방법은 다른 문제입니다.

+0

감사합니다. 나는 그것을 버렸다고 믿을 수 없다. –