我需要一个允许任何事情的 XML 模式示例。
这可能听起来很奇怪,但我需要它来调试我当前的模式。问题是,我有一个在函数(我无法控制的 DLL 的一部分)中使用的复杂对象以及模式,并且该函数返回 XML。目前,该函数会抛出异常,因为在验证模式时出现错误,但不应该出现错误。因此,我想要一个空白架构,一个不会导致任何验证错误的架构,这样我就可以看到函数输出的 XML。
我尝试采用当前的架构,并仅保留 xs:schema 标记来创建空架构,但这显然不起作用。
XML 模式无法指定文档无论其内容如何都是有效的。
但是,如果您能够指定根元素,则可以使用xs:anyAttribute
and xs: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 内容。
Update: This can be written much more concisely [Credit: C. M. Sperberg-McQueen https://stackoverflow.com/users/1477421/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>
请注意,这允许,但不要求,root为空。 https://stackoverflow.com/a/20754138/290085
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)