2016-11-29 4 views
1

I 오류 메시지가 다음받을 this 온라인 유효성 검사기를 사용하여 내 파일의 유효성을 검사하는 중 :연합 요소 검증 XML 스키마

CVC-데이터 타입-valid.1.2.3 : '고모라 20140506' 조합의 유효한 값이 아닌를 '#AnonType_alternatywny_tekstzdjecie'를 입력하십시오.

cvc-type.3.1.3 : 'alternatywny_tekst'의 'Gomorra 20140506'값이 유효하지 않습니다.

나는 w3schools 예제와 같은 형식으로 코드를 작성했습니다. 아무도 내 코드에 어떤 문제가 있다고 말할 수 있습니까?

<xs:element name="zdjecie"> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="wysokosc" type="xs:decimal"/> 
     <xs:element name="szerokosc" type="xs:decimal"/> 
     <xs:element ref="zrodlo"/> 
     <xs:element name="alternatywny_tekst"> 
     <xs:simpleType> 
      <xs:union memberTypes="tekst_1 tekst_2"/> 
     </xs:simpleType> 
     </xs:element> 
    </xs:sequence> 
    <xs:attribute ref="kod"/> 
    </xs:complexType> 
</xs:element> 

<xs:simpleType name="tekst_1"> 
    <xs:restriction base="xs:string"> 
    <xs:enumeration value="Gomorra"/> 
    <xs:enumeration value="Grand Budapest Hotel"/> 
    <xs:enumeration value="Fargo"/> 
    <xs:enumeration value="Wściekłe psy"/> 
    </xs:restriction> 
</xs:simpleType> 

<xs:simpleType name="tekst_2"> 
    <xs:restriction base="xs:integer"> 
    <xs:maxExclusive value="20161130"/> 
    </xs:restriction> 
</xs:simpleType> 

XML은

<zdjecie kod="GO.2014.001"> 
    <wysokosc>735</wysokosc> 
    <szerokosc>500</szerokosc> 
    <zrodlo>Obrazki/gomorra.jpg</zrodlo> 
    <alternatywny_tekst>Gomorra 20140506</alternatywny_tekst> 
</zdjecie> 

답변

1

xs:union의 값 공간의 멤버 유형의 조합이지만, 혼자서 여러 구성원이 존재하는 것을 허용하지 않습니다. XML에서 여러 멤버를 허용하려는 것으로 보입니다. 당신은 xs:list을 통해이를 달성 할 수

<xs:element name="alternatywny_tekst"> 
     <xs:simpleType> 
     <xs:list> 
      <xs:simpleType> 
      <xs:union memberTypes="tekst_1 tekst_2"/> 
      </xs:simpleType> 
     </xs:list> 
     </xs:simpleType> 
    </xs:element> 

참고이 tekst_1tekst_2에 의해 허용 된 값의 조합에서 조합 수 있다는 것 - 필요하지 않게 tekst_1tekst_2 다음을.

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="zdjecie"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="wysokosc" type="xs:decimal"/> 
     <xs:element name="szerokosc" type="xs:decimal"/> 
     <xs:element name="zrodlo" type="xs:string"/> 
     <xs:element name="alternatywny_tekst"> 
      <xs:simpleType> 
      <xs:list> 
       <xs:simpleType> 
       <xs:union memberTypes="tekst_1 tekst_2"/> 
       </xs:simpleType> 
      </xs:list> 
      </xs:simpleType> 
     </xs:element> 
     </xs:sequence> 
     <xs:attribute name="kod" type="xs:string"/> 
    </xs:complexType> 
    </xs:element> 
    <xs:simpleType name="tekst_1"> 
    <xs:restriction base="xs:string"> 
     <xs:enumeration value="Gomorra"/> 
     <xs:enumeration value="Grand Budapest Hotel"/> 
     <xs:enumeration value="Fargo"/> 
     <xs:enumeration value="Wściekłe psy"/> 
    </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="tekst_2"> 
    <xs:restriction base="xs:integer"> 
     <xs:maxExclusive value="20161130"/> 
    </xs:restriction> 
    </xs:simpleType> 
</xs:schema> 
: 여기

성공적으로 XML을 확인할 수 있습니다 완전한 XSD의 맥락에서 위의 선언입니다