在下面的xsd中,我试图创建一个使用相同模式的10名患者的列表。当我验证xml文件时,我得到一个错误,说cvc复杂类型2.4.b.Is还有其他方法可以用来创建10个具有相同模式定义的患者的列表。
XSD文件:
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.hennaloungani.com/Patient"
xmlns:tns="http://www.hennaloungani.com/Patient" elementFormDefault="qualified">
<element name="patient" type="tns:Patient" />
<complexType name="Patient">
<sequence>
<element name="patient" type="tns:Patient" maxOccurs="10" />
<element name="name" type="tns:Sting15Char"></element>
<element name="age" type="int"></element>
<element name="dob" type="date"></element>
<element name="email" type="string" maxOccurs="unbounded"></element>
<element name="gender" type="tns:Gender"></element>
<element name="phone" type="string"></element>
<element name="payment" type="tns:PaymentType"></element>
</sequence>
<attribute name="id" type="tns:ID"></attribute>
</complexType>
<complexType name="PaymentType">
<choice>
<element name="Cash" type="int"></element>
<element name="Insurance" type="tns:Insurance"></element>
</choice>
</complexType>
<complexType name="Insurance">
<all>
<element name="provider" type="string"></element>
<element name="limit" type="int"></element>
</all>
</complexType>
<simpleType name="ID">
<restriction base="int">
<pattern value="[0-100]"></pattern>
</restriction>
</simpleType>
<simpleType name="Sting15Char">
<restriction base="string">
<maxLength value="15"></maxLength>
</restriction>
</simpleType>
<simpleType name="Gender">
<restriction base="string">
<enumeration value="M"></enumeration>
<enumeration value="F"></enumeration>
</restriction>
</simpleType>
我在第2行收到此错误:cvc-complex-type.2.4.b:元素'tns:patient'的内容不完整。其中一个'{“http:// www.hennaloungani.com/Patient":patient}'预计
Xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<tns:patient id="1" xmlns:tns="http://www.hennaloungani.com/Patient" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.hennaloungani.com/Patient Patient.xsd ">
<tns:patient id="1" />
<tns:name>tns:name</tns:name>
<tns:age>0</tns:age>
<tns:dob>2001-01-01</tns:dob>
<tns:email>tns:email</tns:email>
<tns:gender>M</tns:gender>
<tns:phone>tns:phone</tns:phone>
<tns:payment>
<tns:Cash>0</tns:Cash>
</tns:payment>
答案 0 :(得分:1)
XML的private String title, extract;
根元素的patient
子元素没有自己的子元素,但XSD表示patient
元素必须具有各种子元素的序列({ {1}},patient
,patient
等。)
如果您希望为XSD实例化有效的XML文档,则至少必须使name
子元素成为可选:age
。否则,您的XSD将指定patient
后代的无限递归。请注意by default, minOccurs="1"
, which means that the element is required。
如果要按原样允许XML(使用空的minOccurs="0"
子元素)进行验证,请同样将patient
添加到patient
的每个声明中,{{1 },minOccurs="0"
等