2016-12-07 7 views
1

В следующем xsd я пытаюсь создать список из 10 пациентов, использующих ту же схему. Когда я проверяю xml-файл, я получаю сообщение об ошибке cvc complex type 2.4.b.Is есть другой способ, который я могу использовать для создания списка из 10 пациентов с тем же определением схемы.cvc-complex-type.2.4.b: Содержимое элемента tns: patient не завершено

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-комплекс-type.2.4.b: Содержание элемента 'ТНС: пациент' не является полным. Один из '{ "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

Что делает это на самом деле * означает * для пациента, чтобы содержать другого пациента? –

+0

Я на самом деле пытаюсь использовать такое же определение scehma пациента, чтобы создать запись для 9 других пациентов. Я учусь, как это сделать. Любой другой способ сделать это будет оценен. – SuperGirl

+0

Извините, но я бы не стал мечтать о том, чтобы попытаться создать XML-документ, представляющий информацию о пациенте, без предварительного объединения заинтересованных сторон для семинара по моделированию информации и сбору требований; это упражнение, которое полностью выходит за рамки StackOverflow. –

ответ

0

patient потомком корневого элемента patient XML не имеет собственных детей, но XSD говорит, что элементы patient должны иметь последовательность различных дочерних элементов (patient, name,и т. д.).

Если у вас есть какая-либо надежда создать экземпляр XML-документа для вашего XSD, вам, по крайней мере, нужно будет сделать дочерний элемент patient необязательным: minOccurs="0". В противном случае ваш XSD будет указывать бесконечную рекурсию потомков patient. Обратите внимание, что by default, minOccurs="1", which means that the element is required.

Если вы хотите, чтобы ваш XML как есть (с пустым patient дочернего элемента) для проверки, так же добавить minOccurs="0" к каждому из заявлений для name, age, dob и т.д.

+0

Это сработало для меня. Спасибо вам за помощь. – SuperGirl

 Смежные вопросы

  • Нет связанных вопросов^_^