2016-12-07 11 views
1

아래 xsd에서 같은 스키마를 사용하는 10 명의 환자 목록을 작성하려고합니다. xml 파일의 유효성을 검사 할 때 cvc complex type 2.4.b.이 동일한 스키마 정의로 10 명의 환자 목록을 작성하는 데 사용할 수있는 다른 방법이 있다는 오류가 발생합니다.cvc-complex-type.2.4.b : 'tns : patient'요소의 내용이 완전하지 않음

XSD 파일 : 나는 2 호선에서이 오류를 얻고있다

<?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> 

: CVC-복잡한 type.2.4.b을 : 요소의 내용을 'TNS : 환자는'완료되지 않았습니다. 하나의 '{에 "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

minOccurs="0"을 추가 마찬가지로 검증하기 위해 (빈 patient 자식 요소로)있는 그대로 당신의 XML을 허용하려면 무엇 실제로 않습니다 * 환자가 다른 환자를 수용한다는 의미입니까? –

+0

나는 실제로 9 명의 환자에 대한 기록을 만들기 위해 환자의 동일한 정의를 사용하려고합니다. 나는 그것을하는 법을 배우고있다. 그것을하는 다른 방법은 인정 될 것이다. – SuperGirl

+0

미안하지만, 먼저 정보 모델링 및 요구 사항 수집 워크샵을 위해 이해 관계자를 모으지 않고 환자 정보를 나타내는 XML 문서를 디자인하려고하지는 않을 것입니다. 이것은 StackOverflow의 범위 밖에있는 연습입니다. –

답변

0

patient 루트 요소의 patient 아이 의 XML은 자체 자식이 없지만 XSD는 patient 요소가 다양한 자식 요소 (patient, name, 등)의 시퀀스를 가져야한다고 말합니다.

XSD에 유효한 XML 문서를 인스턴스화하려는 경우 적어도 patient 자식 요소를 선택 사항으로 지정해야합니다 (minOccurs="0"). 그렇지 않으면 XSD가 patient 하위 항목의 무한 재귀를 지정합니다. by default, minOccurs="1", which means that the element is required에 유의하십시오.

당신이 name에 대한 선언의 각 등 age, dob,

+0

이것은 나를 위해 일했습니다. 도와 주셔서 감사합니다. – SuperGirl