【问题标题】:Problem with XSD XML validating, S4s-elt-must-match.1XSD XML 验证问题,S4s-elt-must-match.1
【发布时间】:2018-12-05 03:41:11
【问题描述】:

我现在正在使用 XML 和 XSD 验证,我从验证器收到一个错误,上面写着

S4s-elt-must-match.1:“Pavedimas”的内容必须匹配 (注释?,(simpleType | ComplexType)?,(唯一 | Key | Keyref)*))。 发现问题始于:ComplexType。

我只是想从“Sąskaita”中创建一个属于“Pavedimas”的属性。

这是 XML 代码:

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="mok.xsl"?>
<Mokėjimai
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:noNamespaceSchemaLocation="mok.xsd">
          <Organizacija> KTU Informatikos fakultetas </Organizacija>
            <Data>2017-05-25</Data>
  <Pavedimas>
<Sąskaita>S009 999</Sąskaita>
<Būsena>Sumokėta</Būsena>
<Gavėjas>
    <Pavadinimas>Mokesčių inspekcija</Pavadinimas>
    <Bankas>Swedbank</Bankas>
    <Sąskaita>9988 7766 55</Sąskaita>
</Gavėjas>
<Suma>
    <Dydis>155.99</Dydis>
    <Valiuta>EUR</Valiuta>
</Suma>
 </Pavedimas>
 <Pavedimas>
<Sąskaita>S009 907</Sąskaita>
<Būsena>Sumokėta</Būsena>
<Gavėjas>
    <Pavadinimas>Manchester Metropolitan University </Pavadinimas>
    <Bankas>Barclays Bank Delaware</Bankas>
    <Sąskaita>9988 7766 55</Sąskaita>
</Gavėjas>
<Suma>
    <Dydis>212.55</Dydis>
    <Valiuta>GBP</Valiuta>
</Suma>
</Pavedimas>
<Pavedimas>
<Sąskaita>S009 966</Sąskaita>
<Būsena>Nesumokėta</Būsena>
<Gavėjas>
    <Pavadinimas>Zygimantas Glodenis</Pavadinimas>
    <Bankas>SEB</Bankas>
    <Sąskaita>LT7045254125638745</Sąskaita>
</Gavėjas>
<Suma>
    <Dydis>10000.00</Dydis>
    <Valiuta>EUR</Valiuta>
</Suma>
 </Pavedimas>
</Mokėjimai>

这是 XSD:

https://codeshare.io/anlOoX

【问题讨论】:

  • Sąskaita 被定义为 Pavedimas 元素的属性,而不是元素本身。
  • @ophychius 因为我需要它是 xs:attribute

标签: xml validation xsd


【解决方案1】:

你的属性定义放错了地方。它正好在 complexType 之内,但在序列之后。

另外,在您的 XML 中,目前您有一个元素而不是一个属性,因此您仍然需要修复您的 XML 以使其验证。

试试下面的 XSD

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="Mokėjimai">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Organizacija" type="xs:string"/>
                <xs:element name="Data" type="xs:string"/>
                <xs:element name="Pavedimas" minOccurs="0" maxOccurs="unbounded" >
                    <xs:complexType>

                                                  <xs:sequence >
                            <xs:element name="Gavėjas">
                                <xs:complexType>
                                    <xs:sequence >
                                        <xs:element name="Pavadinimas" type="xs:string"/>
                                        <xs:element name="Bankas" type="xs:string"/>
                                        <xs:element name="Sąskaita" type="xs:string" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="Suma">
                                <xs:complexType>
                                    <xs:sequence >
                                        <xs:element name="Dydis" type="xs:decimal" />
                                        <xs:element name="Valiuta" type="xs:string" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                                               <xs:attribute name="Sąskaita" type="xs:string" />
                    </xs:complexType>
                </xs:element>
            </xs:sequence>  
        </xs:complexType>
    </xs:element>   
</xs:schema>

【讨论】:

    猜你喜欢
    • 2012-11-20
    • 2015-09-10
    • 2019-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多