Xml <;任何>;在XSD中不起作用?
我正在尝试创建一个xml模式(xsd)来验证xml文件Xml <;任何>;在XSD中不起作用?,xml,xsd,Xml,Xsd,我正在尝试创建一个xml模式(xsd)来验证xml文件 <a> <b> <c>...</c> <d>...</d> </b> <b> <c>...</c> <e>...</e> <d>...</d> </b
<a>
<b>
<c>...</c>
<d>...</d>
</b>
<b>
<c>...</c>
<e>...</e>
<d>...</d>
</b>
<a>
-element会起到神奇的作用,但事实并非如此。我做错了什么
编辑:
XmlSpy给了我一个错误:DTD/Schema中没有定义元素“c”。您不需要架构中额外的“b”,我想您需要的是:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="a">
<xs:complexType>
<xs:sequence>
<xs:element name="b" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:any maxOccurs="unbounded" minOccurs="1" processContents="lax"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
这表明您将
作为根节点,并且它可以包含一个或多个
节点
编辑:抱歉,没有阅读完整的问题-请尝试以上内容
第二次编辑:上面的另一次尝试 并不像第一次出现的那样自由和容易。默认情况下,我相信,元素的内容仍然必须符合模式,只是它们可以是该模式中的任何内容
如果希望架构中不存在元素,则需要将其定义为:
<xs:any minOccurs="1" processContents="lax"/>
您可以使用“skip”而不是“lax”,后者限制更少
有关更多信息,请参阅。不幸的是,没有。XmlSpy向我提供此错误:DTD/Schema中未定义元素“c”。编辑后:仍然是相同的错误:XmlSpy向我提供此错误:DTD/Schema中未定义元素“c”+尽管如此,1.XmlSpy还是给了我这个错误:DTD/Schema中没有定义元素“c”。都是松弛和跳跃。
<xs:any minOccurs="1" processContents="lax"/>