簡體   English   中英

XML驗證程序-XSD(XML架構)錯誤

[英]XML Validator - XSD (XML Schema) errors

嗨,當我嘗試驗證簡單的xml時,我需要一些幫助來了解schema-xml發生了什么

施瑪

enter code here
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="processconfig" type="userProcess"/>

  <xs:complexType name="userProcess">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="intElement" type="intElement"/>
        <xs:element name="doubleElement" type="doubleElement"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="intElement">
    <xs:complexContent>
      <xs:extension base="elementWindow">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="doubleElement">
    <xs:complexContent>
      <xs:extension base="elementWindow">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="elementWindow" abstract="true">
    <xs:sequence>
      <xs:element name="deLabel" type="xs:string" minOccurs="0"/>
      <xs:element name="enLabel" type="xs:string" minOccurs="0"/>
      <xs:element name="key" type="xs:string" minOccurs="1"/>
      <xs:element name="mandatory" type="xs:string" minOccurs="0"/>
      <xs:element name="value" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
 </xs:schema>

我正在使用繼承,intElement和doubleElement,它們都從elementWindow擴展而來,我正在嘗試驗證此簡單的xml

Xml

enter code here
<?xml version="1.0" ?>
<processconfig>
    <intElement key="count" enLabel="Count" deLabel="Anzahl"/>
</processconfig>

我驗證的結果是下一個:

錯誤

Not valid.
Error - Line 3, 62: org.xml.sax.SAXParseException; lineNumber: 3; columnNumber: 62; cvc-complex-type.3.2.2: Attribute 'key' is not allowed to appear in element 'intElement'.

Error - Line 3, 62: org.xml.sax.SAXParseException; lineNumber: 3; columnNumber: 62; cvc-complex-type.3.2.2: Attribute 'enLabel' is not allowed to appear in element 'intElement'.

Error - Line 3, 62: org.xml.sax.SAXParseException; lineNumber: 3; columnNumber: 62; cvc-complex-type.3.2.2: Attribute 'deLabel' is not allowed to appear in element 'intElement'.

Error - Line 3, 62: org.xml.sax.SAXParseException; lineNumber: 3; columnNumber: 62; cvc-complex-type.2.4.b: The content of element 'intElement' is not complete. One of '{deLabel, enLabel, key}' is expected.

知道為什么嗎? 謝謝!

XSD似乎定義了deLabel,enLabel,鍵(按此順序)
作為intElement的子元素(實際上是
它的父elementWindow),而您正在嘗試使用它們
在XML文件中作為intElement的屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM