模式有效性错误,不期望此元素。预期是{}

时间:2017-04-23 15:37:34

标签: xml validation xsd

让我先粘贴代码

xml文件

<d:Dyspozycja   xmlns:u="http://www.inf.ug.edu.pl/urzadzenia" 
            xmlns:d="http://www.inf.ug.edu.pl/dyspozycja"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
            xsi:schemaLocation="http://www.inf.ug.edu.pl/urzadzenia urzadzenia.xsd">
<d:Sala>
    <d:NumerSali>12</d:NumerSali>
    <d:LiczbaMiejsc>1</d:LiczbaMiejsc>
    <d:Ekran>true</d:Ekran>
</d:Sala>
<d:Przechowalnia>
    <d:Rzutnik>
        <u:Rozdzielczość>Duża</u:Rozdzielczość>
        <u:ŻywotnośćLampy>10</u:ŻywotnośćLampy>
    </d:Rzutnik>
</d:Przechowalnia>

和第一个xsd文件

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://www.inf.ug.edu.pl/dyspozycja"
        xmlns="http://www.inf.ug.edu.pl/dyspozycja"
        elementFormDefault="qualified"
        xmlns:u="http://www.inf.ug.edu.pl/urzadzenia">

<xsd:import schemaLocation="urzadzenia.xsd" namespace="http://www.inf.ug.edu.pl/urzadzenia"/>

<xsd:element name="Dyspozycja">
    <xsd:complexType>
        <xsd:sequence>
            <xsd:element name="Sala" type="typ_list" minOccurs="1" maxOccurs="3"/>
            <xsd:element name="Przechowalnia" type="Typ_Przechowalnia" />
        </xsd:sequence>
        <xsd:attribute name="DzienPoczatkowy" type="xsd:date" />
        <xsd:attribute name="DzienKoncowy" type="xsd:date" />
    </xsd:complexType>
</xsd:element>

<xsd:complexType name="typ_list" mixed="true">
    <xsd:sequence>
        <xsd:element name="NumerSali" type="xsd:integer" />
        <xsd:element name="LiczbaMiejsc" type="xsd:integer" />
        <xsd:element name="Ekran" type="xsd:boolean" />
    </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="Typ_Przechowalnia">
    <xsd:sequence>
        <xsd:element name="Rzutnik" type="u:Typ_Rzutnik" minOccurs="1" maxOccurs="4"/>
        <xsd:element name="Komputer" type="u:Typ_Komputer" maxOccurs="4"/>
        <xsd:element name="Headset" type="u:Typ_Headset" maxOccurs="2"/>
    </xsd:sequence>
</xsd:complexType>

和第二个xsd

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://www.inf.ug.edu.pl/urzadzenia"
        xmlns="http://www.inf.ug.edu.pl/urzadzenia"
        elementFormDefault="qualified">

<xsd:complexType name="Typ_Rzutnik">
    <xsd:all>
        <xsd:element name="Rozdzielczość" type="xsd:string" />
        <xsd:element name="ŻywotnośćLampy" type="xsd:positiveInteger" />
    </xsd:all>
</xsd:complexType>

<xsd:complexType name="Typ_Komputer">
    <xsd:all>
        <xsd:element name="Typ" type="Typ_TypKomputera" />
        <xsd:element name="ŻywotnośćLampy" type="xsd:positiveInteger" />
    </xsd:all>
</xsd:complexType>

<xsd:simpleType name="Typ_TypKomputera">
    <xsd:restriction base="xsd:string">
        <xsd:enumeration value="Desktop" />
        <xsd:enumeration value="Mobile" />
    </xsd:restriction>
</xsd:simpleType>

<xsd:complexType name="Typ_Headset">
    <xsd:all>
        <xsd:element name="Słuchawki" minOccurs="0" />
        <xsd:element name="PojemnośćBaterii" type="xsd:positiveInteger" />
    </xsd:all>
</xsd:complexType>

</xsd:schema>

我为没有英文名字的元素道歉我相信它不会让这里的事情变得更难理解。当我试图通过xmllint xmlfile --scheme firstxsd验证xml时出现错误"xml:11: element rzutnik: Schemas validity error : Element '{link}rzutnik': This element is not expected. Expected is ( {link}Rzutnik )."我不理解它,因为当我在xsd文件中更改元素名称时出于某种目的,我得到一个错误" element rzutnik: Schemas validity error : Element '{link}rzutnik': This element is not expected. Expected is ( {link}Rzutnik )."那么为什么在第一种情况下验证没有看到孩子,如果在第二种情况下验证看到它但由于名称错误而无法验证?对不起我的英语它不是我的第一语言我希望我的问题是可以理解的。

link = http://www.inf.ug.edu.pl/dyspozycja(我无法粘贴2个以上的链接)

0 个答案:

没有答案