Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XML&;XML模式验证_Xml_Schema_Validation - Fatal编程技术网

XML&;XML模式验证

XML&;XML模式验证,xml,schema,validation,Xml,Schema,Validation,在验证程序站点上上载时,会显示以下错误: 1) s4s elt必须匹配。1:“pizza”的内容必须匹配(注释?,(simpleType | complexType)?,(unique | key | keyref)*)。在以下位置发现问题:complexType。 2) cvc复杂类型.2.4.a:发现以元素“name”开头的内容无效。需要一个“{pizza}” 代码如下: XML: 塔尔费内克 9.95 Web协议在生物学中的应用 模式: <?xml version="1.0"?&

在验证程序站点上上载时,会显示以下错误: 1) s4s elt必须匹配。1:“pizza”的内容必须匹配(注释?,(simpleType | complexType)?,(unique | key | keyref)*)。在以下位置发现问题:complexType。 2) cvc复杂类型.2.4.a:发现以元素“name”开头的内容无效。需要一个“{pizza}”

代码如下: XML:


塔尔费内克
9.95
Web协议在生物学中的应用
模式:

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


请帮助

您的模式和xml似乎都有问题

您的模式似乎试图指定名称、价格和描述标记必须包含在pizza标记中。在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>

塔尔费内克
9.95
Web协议在生物学中的应用
但是您的模式使用两个
标记来定义一个类型,这是行不通的。只要属性放在最后,就可以使用一个
来定义
标记的属性和内容。这意味着您的架构应该如下所示:

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


我仍然会遇到同样的错误=/xml是有效的,架构似乎是问题所在……确实还有架构问题。请参阅我编辑的答案。
<?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>