当前位置: 首页 > 知识库问答 >
问题:

XML模式1.1无法识别“断言”或“断言”

慕璞
2023-03-14

我试图在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模式1.1的一部分,但不是1.0。然而,我所读到的一切都表明名称空间是相同的:http://www.w3.org/2001/XMLSchema

一个小问题是,我用来编写模式的程序(Microsoft Visual Studio)不识别“断言”元素,说“命名空间中的元素复合物类型”(...)有无效的子元素“断言”。

主要的问题是,当我实际尝试使用xmllint对这个模式验证一个XML时,它会抛出一个错误,说

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

尽管指向了1.1名称空间,xmllint/visual studio还是无法识别1.1吗?

共有1个答案

长孙朝明
2023-03-14

要处理XSD1.1模式,您需要一个XSD1.1模式处理器。微软并没有提供(他们似乎已经放弃实现新的W3CXML规范)。据我所知,唯一的XSD1.1处理器上可用的。NET平台是Saxonica的。

 类似资料:
  • 我正在使用以下xml架构验证一些xml文件: 我只是想引入一些assert标记,以便进行更强大的验证。但这导致了例外情况: 系统Xml。模式。XmlSchemaException:http://www.w3.org/2001/XMLSchema:assert-元素在此上下文中不受支持。 我现在不知道的是。。。 我在xsd中错误的地方使用了asstrt-元素 http://www.w3.org/20

  • 基本上,问题是是否有AssertJ(首选)或JUnit断言: 我的测试类(CUT)扩展了JAXB的。解组XML文件时,它应该保证相等的对象恰好存在一次。为了验证这一点,我的测试当前看起来是这样的(在示例中,标准ctor创建相等对象):

  • 我试图断言一个xml是否包含一个xpath。例如xpath是: 当我检查它https://www.freeformatter.com/xpath-tester.html它成功返回一个元素。 然而,当我尝试使用以下空手道机制时,它失败了: 错误是 我是不是做错了?我正试着跟着这里的医生https://github.com/intuit/karate/blob/master/karate-junit4

  • 描述:“Assert无法解析” 资源:ConsumerAccountProfileAssertion.Java 路径:/scaccwstest/src/test/Java/ford/cucumber/cap/assertion 位置:第81行 类型:Java问题Assert无法解析 Eclipse OxygenWas

  • 问题内容: 今天,我看到了一个带有Java断言而不是JUnit断言的JUnit测试用例-相对于另一个而言,优先选择一个优点还是缺点? 问题答案: 在JUnit4中,JUnit断言引发的异常(实际上是Error)与java 关键字(AssertionError)引发的错误相同,因此它与堆栈跟踪完全相同,除了您无法分辨出其区别。 话虽这么说,断言必须在JVM中使用特殊标志运行,导致许多测试似乎通过了,

  • 我终于想出了如何从XML中获取列表。然而,放心网站并没有详细说明如何为我得到的列表做出断言。我如何断言这部电影有布鲁斯·威利斯作为一个演员,有一个放心的格式,什么时候,然后?是否使用给定()中的列表?