在xml中xsd:schema和xs:schema是一个意思吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在xml中xsd:schema和xs:schema是一个意思吗相关的知识,希望对你有一定的参考价值。

参考技术A 如果与xsd:schema语句的一个标签内(也就是一个<>),有xmlns:xsd=“XXXXX”就说明xsd只是命名空间的一个别名,命名空间具体在哪里还要看后面的XXXXX。对xs:schema也一样。
如果不是这么出现的我还没见过,希望能帮到你

XML Schema 1.1 无法识别“断言”或“断言”

【中文标题】XML Schema 1.1 无法识别“断言”或“断言”【英文标题】:XML Schema 1.1 not recognizing 'assert' or 'assertion' 【发布时间】:2013-03-12 12:27:47 【问题描述】:

我正在尝试在 XSD

中使用以下内容
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" >
<xs:element name="dimension">
  <xs:complexType>
    <xs:attribute name="height" type="xs:int"/>
    <xs:attribute name="width" type="xs:int"/>
    <xs:assert test="@height = @width"/>
  </xs:complexType>
</xs:element>

我知道断言/断言是 XML Schema 1.1 的一部分,但不是 1.0。然而,我读过的所有内容都表明 namespace 对于两者都是相同的:http://www.w3.org/2001/XMLSchema

一个小问题是我用来编写 Schema (Microsoft Visual Studio) 的程序无法识别“assert”元素,说命名空间中的“元素 complexType (... ) 具有无效的子元素“断言”。

主要问题是,当我实际尝试使用 xmllint 针对此架构验证 XML 时,它会抛出一个错误,说

" element assert: Schemas parser error : Element 'http://www.w3.org/2001/XMLSchemacomplexType': The content is not valid. Expected is (annotation?, (simpleContent | complexContent | ((group | all | choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?))))

xmllint/visual studio 根本无法识别 1.1,尽管它被指向 1.1 命名空间?

【问题讨论】:

【参考方案1】:

要处理 XSD 1.1 架构,您需要 XSD 1.1 架构处理器。微软没有提供(他们似乎已经放弃了实现新的 W3C XML 规范)。据我所知,.NET 平台上唯一可用的 XSD 1.1 处理器是 Saxonica 的。

【讨论】:

谢谢!我是 xml 模式的新手,但会认为处理器只会从您指向的名称空间中提取最新定义。是否有适用于 linux 的 1.1 XSD 兼容编辑器? 不,你不能指望 1994 年开发的处理器实现 2013 年发布的规范。oXygen 是一个在 linux 上运行并支持 XSD 1.1 的编辑器 Oxygen 不支持 1.1,它在断言和断言上抛出错误。我在 ubuntu 16 linux 上运行 eclipse 氧气,所以我也面临同样的问题。 oXygen 确实支持 XSD 1.1,例如 oxygenxml.com/doc/versions/20.1/ug-editor/topics/…

以上是关于在xml中xsd:schema和xs:schema是一个意思吗的主要内容,如果未能解决你的问题,请参考以下文章

xml Schema import

xml Schema include

XML Schema 1.1无法识别'assert'或'assertion'

XML Schema 1.1 无法识别“断言”或“断言”

xml 和 xsd 的架构验证失败

针对包含 xsd:import without location 的 XSD 验证 XML