Xml 架构属性在作用域属性声明中引发错误
我正在使用XSLT2.0。我的XSL文件中有一个声明:Xml 架构属性在作用域属性声明中引发错误,xml,xslt,xsd,schema,xslt-2.0,Xml,Xslt,Xsd,Schema,Xslt 2.0,我正在使用XSLT2.0。我的XSL文件中有一个声明: <xsl:template match="schema-attribute(attr)"> <match>schema-attribute(attr):</match> </xsl:template> 架构属性(attr): 我正在尝试将schema属性与attr匹配。我的xml文档中有多个属性为attr的xml元素 xml文档: <?xml
<xsl:template match="schema-attribute(attr)">
<match>schema-attribute(attr):</match>
</xsl:template>
架构属性(attr):
我正在尝试将schema属性与attr匹配。我的xml文档中有多个属性为attr的xml元素
xml文档:
<?xml version="1.0" encoding="UTF-8" ?>
<test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noschemaLocation="http://www.w3.org/2001/XMLSchema-instance">
<e1>def</AAA>
<e1 attr="1">there</AAA>
<e1 attr="2">hey</AAA>
</test>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="2.0" >
<xsl:template match="schema-attribute(attr)">
<match>matched</match>
</xsl:template>
</xsl:stylesheet>
def
那里
嘿
模式:
<?xml version="1.0" encoding="UTF-8" ?>
<x:schema xmlns:x="http://www.w3.org/2001/XMLSchema">
<x:element name="test" />
<x:element name="e1" type="etype" />
<x:complexType name="etype">
<x:simpleContent>
<x:extension base="x:string">
<x:attribute name="attr" type="x:string" use="optional"></x:attribute>
</x:extension>
</x:simpleContent>
</x:complexType>
xsl:
<?xml version="1.0" encoding="UTF-8" ?>
<test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noschemaLocation="http://www.w3.org/2001/XMLSchema-instance">
<e1>def</AAA>
<e1 attr="1">there</AAA>
<e1 attr="2">hey</AAA>
</test>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="2.0" >
<xsl:template match="schema-attribute(attr)">
<match>matched</match>
</xsl:template>
</xsl:stylesheet>
匹配
我得到以下错误:
序列类型表达式引用范围内属性声明中未定义的架构属性“attr”
我不知道为什么会有这样的错误,这意味着什么。我试图用谷歌搜索,但没有找到解决办法。同样,attr也是xml中的一个属性
- 在这个特定的上下文中,范围内属性声明意味着什么李>
- 另外,如何使用上面的xml文件使用schema属性
您会问:“另外,如何使用上面的xml文件使用schema-attribute()。这不是一个好问题。schema-attribute()可以解决的问题很少。我怀疑你的问题不在其中。告诉我们你想做什么,我们可以告诉你如何着手解决它。选择与问题匹配的工具,而不是与工具匹配的问题。如果我可以尝试比Michael Sperberg McQueen更简短的回答:schema-attribute()测试很少有用。它们只匹配已根据模式中的全局(顶级)属性声明进行验证的属性,很少有模式实际使用全局属性声明。与您一样,大多数都在本地声明中定义属性 错误消息表示您的架构没有名为“attr”的全局属性声明
您会问:“另外,如何使用上面的xml文件使用schema-attribute()。这不是一个好问题。schema-attribute()可以解决的问题很少。我怀疑你的问题不在其中。告诉我们你想做什么,我们可以告诉你如何着手解决它。选择与问题匹配的工具,而不是与工具匹配的问题。如果我可以尝试比Michael Sperberg McQueen更简短的回答:schema-attribute()测试很少有用。它们只匹配已根据模式中的全局(顶级)属性声明进行验证的属性,很少有模式实际使用全局属性声明。与您一样,大多数都在本地声明中定义属性 错误消息表示您的架构没有名为“attr”的全局属性声明
您会问:“另外,如何使用上面的xml文件使用schema-attribute()。这不是一个好问题。schema-attribute()可以解决的问题很少。我怀疑你的问题不在其中。告诉我们你想做什么,我们可以告诉你如何着手解决它。选择与问题匹配的工具,而不是与工具匹配的问题。如果我可以尝试比Michael Sperberg McQueen更简短的回答:schema-attribute()测试很少有用。它们只匹配已根据模式中的全局(顶级)属性声明进行验证的属性,很少有模式实际使用全局属性声明。与您一样,大多数都在本地声明中定义属性 错误消息表示您的架构没有名为“attr”的全局属性声明
您会问:“另外,如何使用上面的xml文件使用schema-attribute()。这不是一个好问题。schema-attribute()可以解决的问题很少。我怀疑你的问题不在其中。告诉我们你想做什么,我们可以告诉你如何着手解决它。选择与问题匹配的工具,而不是与工具匹配的问题。您的xml仍然毫无意义。
xsi:schemaLocation
应该是名称空间/模式对的序列。由于您的文档不使用名称空间,您可能希望使用xsi:noNamespaceSchemaLocation
。好的,我做了这些更改。但是如何将schema属性用于这个xml文档呢?您只是想知道如何匹配attr
属性吗?如果是这样,模板的匹配表达式将是
。您的xml仍然没有意义。xsi:schemaLocation
应该是名称空间/模式对的序列。由于您的文档不使用名称空间,您可能希望使用xsi:noNamespaceSchemaLocation
。好的,我做了这些更改。但是如何将schema属性用于这个xml文档呢?您只是想知道如何匹配attr
属性吗?如果是这样,模板的匹配表达式将是
。您的xml仍然没有意义。xsi:schemaLocation
应该是名称空间/模式对的序列。由于您的文档不使用名称空间,您可能希望使用xsi:noNamespaceSchemaLocation
。好的,我做了这些更改。但是如何将schema属性用于这个xml文档呢?您只是想知道如何匹配attr
属性吗?如果是这样,模板的匹配表达式将是
。您的xml仍然没有意义。xsi:schemaLocation
应该是名称空间/模式对的序列。因为你的文件没有