내가 네임 스페이스 질문 다스 십센트 있습니다 실현 "템플릿 규칙은 네임 스페이스의 요소와 일치",하지만 난 색슨에서 점점 오전 :메시지
경고 SXXP0005을 : 소스 문서는 네임 스페이스 http://docbook.org/ns/docbook, B의 유타에 모든 템플릿 규칙은 더 네임 스페이스에 요소와 일치 (사용 --suppressXsltNamespaceChec의 K를 :
피할이 경고에에)
내 소스 파일의 루트 요소는 다음과 같습니다
<?xml version="1.0" encoding="UTF-8"?>
<topic xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://docbook.org/ns/docbook"
xml:id="103829">
<info>
<title>My title</title>
</info>
<procedure>
...
그리고 내 XSL은 다음과 같습니다
경고로<?xml version="1.0"?>
<xsl:stylesheet version="2.0"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://docbook.org/ns/docbook">
<!-- Dummy template, just trying to match anything -->
<xsl:template match="procedure">
<orderedlist>
SOME TEXT
<xsl:copy-of select="*"/>
</orderedlist>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
, 템플릿과 일치하지 않습니다. 그러나 나는 왜 그런지 알지 못한다 : 나는 소스 파일과 XSL 파일에서 같은 기본 네임 스페이스를 사용하는 것이 이런 종류의 오류를 막을 것이라고 생각했다.
또한 접두어를 선언하고 모든 요소에 적용 할 수 있다고 가정합니다. 하지만 기본 네임 스페이스의 전치사를 접두어로 사용하는 것을 피하지 않았습니까?