元素"x"是指元素"x".在名称空间"xSchema"中具有无效的子元素"y",在名称空间"xSchema"中.预期的可能元素的列表:"y". [英] The element "x" in namespace "xSchema" has invalid child element "y" in namespace "xSchema". List of possible elements expected: "y"

查看:120
本文介绍了元素"x"是指元素"x".在名称空间"xSchema"中具有无效的子元素"y",在名称空间"xSchema"中.预期的可能元素的列表:"y".的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在为我的XML验证最终版编写一个模式,最后使所有内容(差不多)都可以正常工作.但是现在我在XML中遇到了最奇怪的错误.我将从显示我的模式开始,因为这是问题所在的位置,但它不会给我任何错误.

I am writing a schema for my XML validation final, and finally got everything (just about) working. But now I'm getting the strangest error in my XML. I'll start by showing my schema since that's where the problem should be located yet it gives me no errors.

<?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"中的元素"orders"在名称空间"OrdersSchema"中具有无效的子元素"order" '.预期的可能元素列表:订单".

Now, my schema gives no errors at all, but when I link my XML file to it, I get an error saying: The element 'orders' in namespace 'OrdersSchema' has invalid child element 'order' in namespace 'OrdersSchema'. List of possible elements expected: 'order'.

如果有人想尝试一下,这是应该验证的代码:

Here's a code that should validate, if anyone wants to try it out:

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

推荐答案

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

换句话说,它认为您的架构告诉解析器期望一个没有命名空间的<order>子元素,并且您在实例文档中提供了一个命名空间的<os:order>.

In other words, it thinks your schema told the parser to expect a non-namespaced <order> child element, and you provided a namespaced <os:order> in the instance document.

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

这篇关于元素"x"是指元素"x".在名称空间"xSchema"中具有无效的子元素"y",在名称空间"xSchema"中.预期的可能元素的列表:"y".的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆