gpt4 book ai didi

允许任何内容的 XML 架构 (xsd :any)

转载 作者:数据小太阳 更新时间:2023-10-29 01:41:00 25 4
gpt4 key购买 nike

我需要一个 XML 模式的示例,它允许任何事情发生。

这听起来可能很奇怪,但我需要它来调试我当前的模式。问题是我有一个复杂的对象,我在一个函数(我无法控制的 DLL 的一部分)中使用它以及一个模式,并且该函数返回给我 XML。目前该函数抛出异常,因为在使用模式验证时出现错误,但不应该有。所以,我想要一个空白模式,一个不会导致任何验证错误的模式,这样我就可以看到函数输出的 XML。

我尝试采用我当前的架构,并仅保留 xs:schema 标记来创建一个空架构,但这显然不起作用。

最佳答案

XML 架构无法指定文档无论其内容如何均有效。

但是,如果您能够指定根元素,则可以使用 xs:anyAttributexs:any 允许根元素上的任何属性和任何根下的 XML:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute processContents="skip"/>
</xs:complexType>
</xs:element>
</xs:schema>

在您的情况下,只要您确信可能的根元素名称数量有限,您就可以使用此技术允许具有已知名称的根元素下的任何 XML 内容。


更新:这可以写得更简洁[Credit: C. M. Sperberg-McQueen ]:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root"/>
</xs:schema>

请注意,这是允许的,but not requiring, root to be empty.

关于允许任何内容的 XML 架构 (xsd :any),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26003982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com