Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 使用无名称空间的xsl处理xsd_Xml_Xslt_Xsd_Schema - Fatal编程技术网

Xml 使用无名称空间的xsl处理xsd

Xml 使用无名称空间的xsl处理xsd,xml,xslt,xsd,schema,Xml,Xslt,Xsd,Schema,我在使用xsl处理xsd时遇到问题。我的xsd文件开始于: <schema targetNamespace="http://www.bleble.com" xmlns="http://www.w3.org/2001/XMLSchema"> <complexType name="blabla"> ... 不将其添加到标记: <complexType name="blabla"> 但它对xml标准无效 谢谢你的帮助 这是XPath和XSLT中最常见的问题,

我在使用xsl处理xsd时遇到问题。我的xsd文件开始于:

<schema targetNamespace="http://www.bleble.com"
xmlns="http://www.w3.org/2001/XMLSchema">
<complexType name="blabla">
...
不将其添加到标记:

<complexType name="blabla">

但它对xml标准无效


谢谢你的帮助

这是XPath和XSLT中最常见的问题,搜索“XPath中的默认名称空间”,您会找到许多很好的解释

快速的答案是,要选择默认名称空间(其名称空间uri不是空字符串)中具有未固定名称的元素,您需要在XSLT代码中将前缀绑定到名称空间,并引用任何具有如此定义的前缀的未固定元素名

在这种情况下

//complexType
不选择任何内容,因为XPath处理器正在查找名为
complexType
的元素,该元素位于“无命名空间”中,但文档中的所有元素都位于
中http://www.w3.org/2001/XMLSchema“
名称空间

您已经将前缀
xsd
绑定到源XML文档的默认名称空间,然后使用:

//xsd:complexType

这是XPath和XSLT中最常见的FAQ——搜索“XPath中的默认名称空间”,您将找到许多很好的解释

快速的答案是,要选择默认名称空间(其名称空间uri不是空字符串)中具有未固定名称的元素,您需要在XSLT代码中将前缀绑定到名称空间,并引用任何具有如此定义的前缀的未固定元素名

在这种情况下

//complexType
不选择任何内容,因为XPath处理器正在查找名为
complexType
的元素,该元素位于“无命名空间”中,但文档中的所有元素都位于
中http://www.w3.org/2001/XMLSchema“
名称空间

您已经将前缀
xsd
绑定到源XML文档的默认名称空间,然后使用:

//xsd:complexType
你糊涂了

您会说:“所以没有名称空间可以通过xsl识别标记”。但是有一个名称空间——名称空间是。没有前缀,但前缀对XSLT并不重要;要编写XSLT处理代码,您只需要知道名称空间URI。例如,如果要匹配complexType元素,则需要编写

<xsl:template match="ajkt:complexType" xmlns:ajkt="http://www.w3.org/2001/XMLSchema"/>

当然,您通常会使用比ajkt(可能是xs或xsd)更容易识别的前缀,并且通常会将声明放在xsl:stylesheet元素上,但这只是表面现象。

您感到困惑

您会说:“所以没有名称空间可以通过xsl识别标记”。但是有一个名称空间——名称空间是。没有前缀,但前缀对XSLT并不重要;要编写XSLT处理代码,您只需要知道名称空间URI。例如,如果要匹配complexType元素,则需要编写

<xsl:template match="ajkt:complexType" xmlns:ajkt="http://www.w3.org/2001/XMLSchema"/>


当然,您通常会使用比ajkt(可能是xs或xsd)更容易识别的前缀,并且通常会将声明放在xsl:stylesheet元素上,但这只是表面现象。

您需要更清楚地了解您所做的尝试。您的意思是在XSL样式表中添加了xmlns:xsd名称空间前缀声明吗?你说的“不加标签”是什么意思。。。在XPath表达式中不使用名称空间前缀?“无效”是什么意思?请显示您认为无效的代码(在更多上下文中),并说明是什么让您认为它无效。您展示的名称空间前缀声明的格式肯定很好,并且不会使XSL样式表“无效”。此外,如果您区分“名称空间”和“名称空间前缀”以及“名称空间前缀声明”,而不是将它们全部称为“名称空间”,那么有关此主题的问题和答案将更容易理解。例如,当你说“没有名称空间”时,那是不对的。显然,您的意思是“没有名称空间前缀”。可能是您不熟悉名称空间声明的工作方式。我不怪你,但我会给你一个建议,在这个领域,花一个小时专门学习基础知识将使生活变得更加轻松,避免以后几个小时的挫折。你需要更清楚地了解你所做的尝试。您的意思是在XSL样式表中添加了xmlns:xsd名称空间前缀声明吗?你说的“不加标签”是什么意思。。。在XPath表达式中不使用名称空间前缀?“无效”是什么意思?请显示您认为无效的代码(在更多上下文中),并说明是什么让您认为它无效。您展示的名称空间前缀声明的格式肯定很好,并且不会使XSL样式表“无效”。此外,如果您区分“名称空间”和“名称空间前缀”以及“名称空间前缀声明”,而不是将它们全部称为“名称空间”,那么有关此主题的问题和答案将更容易理解。例如,当你说“没有名称空间”时,那是不对的。显然,您的意思是“没有名称空间前缀”。可能是您不熟悉名称空间声明的工作方式。我不怪你,但我会给你一个建议,这是一个专门研究基础知识的领域,一个小时的学习将使生活变得更加轻松,避免以后几个小时的挫折。是的!我明白了!太感谢你了!是的!我明白了!太感谢你了!