我有这样的xsd.这些所有字段都可以存在或不存在,并且不可预测.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="request">
<xs:complexType>
<xs:all minOccurs="0">
<xs:element ref="field1"/>
<xs:element ref="field2"/>
<xs:element ref="field3"/>
<xs:element ref="field4"/>
<xs:element ref="field5"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)
field4在xml中不存在,验证器说他正在等待field4,但他不应该这样说.那有什么不对?
<xs:element name="person">
<xs:complexType>
<xs:all minOccurs="0">
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:all>
</xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)
上面的例子表明"firstname"和"lastname"元素可以按任何顺序出现,每个元素可以出现零次或一次!
ska*_*man 16
你需要把minOccurs各个元素,而不是<xs:all>,即
<xs:all>
<xs:element ref="field1" minOccurs="0"/>
<xs:element ref="field2" minOccurs="0"/>
<xs:element ref="field3" minOccurs="0"/>
<xs:element ref="field4" minOccurs="0"/>
<xs:element ref="field5" minOccurs="0"/>
</xs:all>
Run Code Online (Sandbox Code Playgroud)
把minOccurs="0"上<xs:all>是说,整个基团可被省略,而不是单个的元件.
请参阅XML Schema文档.
| 归档时间: |
|
| 查看次数: |
6237 次 |
| 最近记录: |