2

在验证器站点上上传时显示以下错误:1) s4s-elt-must-match.1: 'pizza' 的内容必须匹配 (annotation?, (simpleType | complexType)?, (unique | key | keyref) *))。发现问题始于:complexType。2)cvc-complex-type.2.4.a:发现以元素“名称”开头的无效内容。需要“{pizza}”之一。

代码如下: XML:

<?xml version="1.0"?>
<pizzamenu xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:noNamespaceSchemaLocation="schemasnippet.xsd"> 
   <pizza id = "0011"/>   
  <name> Tal Fenek </name>
  <price>  9.95 </price> 
<description>The application of Web protocols to Biology</description> 

</pizzamenu>

架构:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="pizzamenu">
  <xs:complexType>
    <xs:sequence maxOccurs="unbounded">
      <xs:element name="pizza">
        <xs:complexType>
                <xs:attribute name="id" type="xs:string" />

              </xs:complexType>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="name">

            </xs:element> <!-- name -->
            <xs:element name="price">

            </xs:element> <!-- price -->
            <xs:element name="description">
            </xs:element> <!-- description -->
          </xs:sequence>
        </xs:complexType>
      </xs:element> <!-- pizza -->
    </xs:sequence>
  </xs:complexType>
</xs:element> <!-- pizzamenu -->
</xs:schema>

请帮忙

4

1 回答 1

2

您的架构和 xml 似乎都有问题。

您的架构似乎试图指定名称、价格和描述标签必须包含在比萨标签内。在您的 xml 中,它们不是。

xml 很可能应该更像:

<?xml version="1.0"?>
<pizzamenu xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:noNamespaceSchemaLocation="schemasnippet.xsd"> 
   <pizza id = "0011">   
      <name> Tal Fenek </name>
      <price>  9.95 </price> 
      <description>The application of Web protocols to Biology</description> 
   </pizza>
</pizzamenu>

但是您的架构使用两个<xs:complexType>标签来定义一个类型,这是行不通的。只要属性放在最后,<xs:complexType>就可以使用单个来定义标签的属性和内容。<pizza>这意味着您的架构应如下所示:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="pizzamenu">
        <xs:complexType >
            <xs:sequence maxOccurs="unbounded">
                <xs:element name="pizza">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="name">

                            </xs:element> <!-- name -->
                            <xs:element name="price">

                            </xs:element> <!-- price -->
                            <xs:element name="description">
                            </xs:element> <!-- description -->
                        </xs:sequence>
                        <xs:attribute name="id" type="xs:string" />
                    </xs:complexType>
                </xs:element> <!-- pizza -->
            </xs:sequence>
        </xs:complexType>
    </xs:element> <!-- pizzamenu -->
</xs:schema>
于 2013-05-27T21:29:45.820 回答