2014-01-09 1 views
7

XML 유효성 검사 최종본을위한 스키마를 작성 중이며 마침내 모든 작업이 완료되었습니다. 하지만 지금은 XML에서 가장 이상한 오류가 발생합니다. 그때부터는 문제가있는 곳에서부터 스키마를 보여 주면서 시작하겠습니다. 오류가 발생하지 않습니다. 이제 네임 스페이스 "xSchema"의 "x"요소에 네임 스페이스 "xSchema"의 자식 요소 "y"가 잘못되었습니다. 예상되는 요소 목록 : "y"

<?xml version="1.0"?> 
<schema xmlns="http://www.w3.org/2001/XMLSchema" 
     xmlns:os="OrdersSchema" 
     targetNamespace="OrdersSchema" 
     elementFormDefault="unqualified" 
     attributeFormDefault="qualified"> 
    <element name="orders" type="os:orders"/> 
    <complexType name="orders"> 
    <sequence> 
     <element name="order" type="os:order" maxOccurs="unbounded"/> 
    </sequence> 
    </complexType> 
    <complexType name="order"> 
    <sequence> 
     <element name="deliveryAddress"> 
     <complexType> 
      <sequence> 
      <element name='line1' type='os:lineType'/> 
      <element name='line2' type='os:lineType'/> 
      <element name='line3' type='os:lineType'/> 
      <element name='line4' type='os:lineType' minOccurs='0'/> 
      </sequence> 
      <attribute name="orderId" type="string" use="required" > 
      </attribute> 
      <attribute name="type" type="os:typeType" use="required"/> 
     </complexType> 
     <unique name="uniqueOrderIdPerOrder"> 
      <selector xpath="os:order"/> 
      <field xpath="orderId"/> 
     </unique> 
     </element> 
     <element name='items'> 
     <complexType> 
      <attribute name='productId' type='os:productIdType'/> 
      <attribute name='quantity'> 
      <simpleType> 
       <restriction base='positiveInteger'> 
       </restriction> 
      </simpleType> 
      </attribute> 
     </complexType> 
     </element> 
     <element name='note' minOccurs='0' type='string'/> 
    </sequence> 
    </complexType> 

    <simpleType name='lineType'> 
    <restriction base='string'> 
     <minLength value='1'/> 
    </restriction> 
    </simpleType> 
    <simpleType name='typeType'> 
    <restriction base='string'> 
     <enumeration value='standard'/> 
     <enumeration value='express'/> 
    </restriction> 
    </simpleType> 
    <simpleType name='productIdType'> 
    <restriction base='string'> 
     <pattern value='(?i)p[-\s](150|1[0-4][0-9]|[[1-9][0-9]|[1-9])\.[a-z][a-z][a-z][a-z][a-z][a-z]'/> 
     <pattern value='A...+[$XYZ]\b'/> 
    </restriction> 
    </simpleType> 



</schema> 

, 내 스키마가 전혀 오류를 제공하지 않습니다,하지만 난 그것에 내 XML 파일을 연결할 때, 내가 말하는 오류 : 네임 스페이스 'OrdersSchema'의 요소 '주문'잘못된 자식 요소 '순서'가 네임 스페이스 'OrdersSchema'에 있습니다. 가능한 요소 목록 : '주문'. 즉

<?xml version="1.0" encoding="utf-8" ?> 
<os:orders xmlns:os="OrdersSchema"> 
    <os:order orderId="ord0001" type="standard"> 
    <deliveryAddress> 
     <line1>5, Elmstreet</line1> 
     <line2>90210 Beverly Hills</line2> 
     <line3>California</line3> 
    </deliveryAddress> 
    <items> 
     <item productId="P 150.aabaac" quantity="5" /> 
    </items> 
    <note>Deliver after 5 pm.</note> 
    </os:order> 
    <os:order orderId="ord0003" type="express"> 
    <deliveryAddress> 
     <line1>Voskenslaan 30</line1> 
     <line2>BE9000 Gent</line2> 
     <line3>Oost-Vlaanderen</line3> 
     <line4>Belgium</line4> 
    </deliveryAddress> 
    <items> 
     <item productId="A3546sdfsdf6546sdf654Z" quantity="10" /> 
     <item productId="p 149.SLKDOZ" quantity="5" /> 
     <item productId="P 100.xcvZEr" quantity="15" /> 
    </items> 
    </os:order> 
    <os:order orderId="ord0002" type="express"> 
    <deliveryAddress> 
     <line1>Voskenslaan 32</line1> 
     <line2>BE9000 Gent</line2> 
     <line3>Oost-Vlaanderen</line3> 
     <line4>Belgium</line4> 
    </deliveryAddress> 
    <items> 
     <item productId="P-99.ruioze" quantity="15" /> 
     <item productId="A123qze46548X" quantity="50" /> 
     <item productId="P 1.sqmfze" quantity="1" /> 
     <item productId="AoknY" quantity="20" /> 
    </items> 
    <note>This is <b>very urgent</b> !</note> 
    </os:order> 
</os:orders> 
+0

안녕하세요 @ user2843457, Voskenslaan 32, 내가 어디 있는지 알고 있습니다 : -O – bvgheluwe

답변

2
The element 'orders' in namespace 'OrdersSchema' 
has invalid child element 'order' in namespace 'OrdersSchema'. 
List of possible elements expected: 'order'. 

를,이 스키마가 아닌 네임 스페이스 <order> 자식 요소를 기대하는 파서에게 생각 : 사람이 그것을 밖으로 시도하고자하는 경우

여기에, 확인해야합니다 코드입니다 인스턴스 문서에 <os:order>의 네임 스페이스를 제공했습니다.

elementFormDefault="unqualified" 
attributeFormDefault="qualified" 

http://www.w3.org/TR/xmlschema-0/#NS

5

를 사용하는 것은 매우 이례적인 일이다, 아마도 문제의 근원이다. 특이한 일을 정말로하고 싶지 않다면, 이것들은 다른 방향 일 것입니다.

+0

답장을 보내 주셔서 감사합니다. 나는 나의 문제를 해결할 수 있었다. – user2843457

+0

브리퍼를 설명하고 좀 더 일반적인 것을 설명하는 좋은 점. – keshlam

+0

이것은 내 문제를 해결했습니다. 감사 –

관련 문제