XSLT命名空间错误无法分析qname

XSLT命名空间错误无法分析qname,xslt,qnames,Xslt,Qnames,stackoverflow的好人。。。我正在尝试创建一个XSLT转换,它将生成一个Turtle文件(与RDF相关)。其中一部分涉及前缀名称空间的输出,如下所示: <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

stackoverflow的好人。。。我正在尝试创建一个XSLT转换,它将生成一个Turtle文件(与RDF相关)。其中一部分涉及前缀名称空间的输出,如下所示:

<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:sap="http://www.sap.com/sapxsl"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:sap_coda="http://www.sapmantics.com/sap_coda#"
    version="1.0">

  <xsl:strip-space elements="*"/>

  <xsl:template match="/">
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>' .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
...

@前缀rdfs:'。
@前缀owl:。
@前缀dc:。
...
当我尝试应用转换时,我得到:

$ xsltproc zcoda_ttl_v02x.xslt zcoda_data_v02.xml > zcoda_data_v02x.ttl | x.txt
zcoda_ttl_v02x.xslt:10: namespace error : Failed to parse QName 'http:'
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>' .
                    ^
zcoda_ttl_v02x.xslt:10: parser error : error parsing attribute name
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>' .
                    ^
zcoda_ttl_v02x.xslt:10: parser error : attributes construct error
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>' .
                    ^
zcoda_ttl_v02x.xslt:10: parser error : Couldn't find end of Start Tag http: line 10
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>' .
$xsltproc zcoda_ttl_v02x.xslt zcoda_data_v02.xml>zcoda_data_v02x.ttl|x.txt
zcoda_ttl_v02x.xslt:10:命名空间错误:无法分析QName'http:'
@前缀rdfs:'。
^
zcoda_ttl_v02x.xslt:10:解析器错误:解析属性名称时出错
@前缀rdfs:'。
^
zcoda_ttl_v02x.xslt:10:解析器错误:属性构造错误
@前缀rdfs:'。
^
zcoda_ttl_v02x.xslt:10:解析器错误:找不到开始标记的结尾http:10行
@前缀rdfs:'。

所以,我在这里不知所措。我寻找的海龟输出包含许多这样的情况。有没有办法停止处理器,只考虑HTTP…作为普通数据(如xml中的CDATA选项)?谢谢,John

您可以将http内容封装在xsl:text中,我想:

 <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
                xmlns:sap="http://www.sap.com/sapxsl" 
                xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
                xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" 
                xmlns:sap_coda="http://www.sapmantics.com/sap_coda#" 
                version="1.0">

  <xsl:strip-space elements="*"/>

  <xsl:template match="/">
@prefix rdfs: <xsl:text><![CDATA[<http://www.w3.org/2000/01/rdf-schema#>]]></xsl:text>

@前缀rdfs:]>
使用实体:


不。输出分别包含<和>的和。我确实尝试过,但我的输出现在包含和,这不是我的意图。我需要让输出包含实际的符号。@johnaco:要么输出是文本,在这种情况下,您希望样式表中包含
,要么是XML,当文本
和代码>在PCDATA中无效时,您必须使用实体。第三种可能是您正在使用CDATA,但如果是,请告诉我们。非常好。这就是缺少的输出方法=“text”。因此,所描述的两种方法—使用<或使用CDATA方法—都可以按需要工作。非常感谢。
@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;' .
@prefix owl: &lt;http://www.w3.org/2002/07/owl#&gt; .
@prefix dc: &lt;http://purl.org/dc/elements/1.1/&gt; .