XSD XML验证问题,S4s-elt-must-match.1

时间:2018-12-03 10:23:48

标签: xml validation xsd

我现在正在使用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

1 个答案:

答案 0 :(得分:0)

您的属性定义在错误的位置。它就在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>