xml - cvc-复杂类型.2.4.b : The content of element 'tns:patient' is not complete

标签 xml xsd xml-validation xmlschemaset

在下面的 xsd 中,我尝试使用相同的模式创建 10 名患者的列表。当我验证 xml 文件时,我收到一条错误消息,指出 cvc 复杂类型 2.4.b。是否有任何其他方法可以用来创建具有相同架构定义的 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>

最佳答案

XML 的 patient 根元素的 patient 子元素没有自己的子元素,但 XSD 指出 patient 元素必须具有各种子元素的序列(patientnameage 等)。

如果您希望为您的 XSD 实例化一个有效的 XML 文档,您至少必须使 patient 子元素是可选的:minOccurs="0"。否则,您的 XSD 将指定 patient 后代的无限递归。注意 by default, minOccurs="1", which means that the element is required .

如果你想让你的 XML 按原样(带有一个空的 patient 子元素)进行验证,类似地添加 minOccurs="0" 到每个声明name, age, dob

关于xml - cvc-复杂类型.2.4.b : The content of element 'tns:patient' is not complete,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41027395/

相关文章:

android - 应用程序图标不显示在操作栏中 (Android Studio 1.0.1)

java - 为什么在 getView() 中膨胀 View 会导致异常?

spring - 为什么 Spring Integration 有多种 XML 模式,我应该使用哪一种?

使用 XSD : how to avoid caring about the sequence of the elements? 进行 XML 验证

c# - 如何将 List<T> 序列化为 XML?

c# - XML反序列化失败

xsd - 架构问题 : Can define element type OR add element attribute, 但不是两者。我两个都想要!

validation - 如何在 DNX Core 5.0 (ASP.NET 5) 中针对 XSD(单独文档)验证 XML?

xml - 在 XML DTD 中使用 + 运算符

java - 在 Java 中针对 XSD 验证 XML/获取 schemaLocation