Xml 发现以元素';开头的内容无效;员工';。一个';{contractemployee}';预计

Xml 发现以元素';开头的内容无效;员工';。一个';{contractemployee}';预计,xml,xsd,Xml,Xsd,我必须从实体关系图生成XML和XSD。我的XML是正确的,但我无法验证使用此XML文档生成的XSD,因为它引发了一个错误:发现以元素“employee”开头的无效内容。应为“{contractemployee}”之一 XML: <?xml version="1.0" encoding="UTF-8"?> <company> <companyname>capgemini</companyname> <address>mumbai</

我必须从实体关系图生成XML和XSD。我的XML是正确的,但我无法验证使用此XML文档生成的XSD,因为它引发了一个错误:发现以元素“employee”开头的无效内容。应为“{contractemployee}”之一

XML:

<?xml version="1.0" encoding="UTF-8"?>
<company>
<companyname>capgemini</companyname>
<address>mumbai</address>
    <department>
        <dname>software</dname>
        <deptphoneno>9876543210</deptphoneno>
        <deptfaxno>0447654321</deptfaxno>
        <deptemail>soft@capgemini.com</deptemail>
            <employee>
                <empid>101</empid>
                <ename>rajat</ename>
                <emailid>rajat@capgemini.com</emailid>
                <phoneno>9876543211</phoneno>
            </employee>
            <contractemployee>
                <name>jade</name>
                <phoneno>9882507167</phoneno>
            </contractemployee>
    </department>
</company>
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xsd:element name="company">
        <xsd:complexType>
        <xsd:sequence>
            <xsd:element name="companyname" type="xsd:string"/>
            <xsd:element name="address" type="xsd:string"/>
            <xsd:element name="department">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="dname" type="xsd:string"/>
                        <xsd:element name="deptphoneno" type="xsd:long"/>
                        <xsd:element name="deptfaxno" type="xsd:int"/>
                        <xsd:element name="deptemail" type="xsd:string"/>
                        <xsd:element name="employee">
                            <xsd:complexType>
                                <xsd:sequence>
                                    <xsd:element name="empid" type="xsd:int"/>
                                    <xsd:element name="ename" type="xsd:string"/>
                                    <xsd:element name="emailid" type="xsd:string"/>
                                    <xsd:element name="phoneno" type="xsd:long"/>
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                        <xsd:element name="contractemployee">
                            <xsd:complexType>
                                <xsd:sequence>
                                    <xsd:element name="name" type="xsd:string"/>
                                    <xsd:element name="phoneno" type="xsd:long"/>
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
</xsd:element>
</xsd:schema>

凯捷
孟买
软件
9876543210
0447654321
soft@capgemini.com
101
拉贾特
rajat@capgemini.com
9876543211
玉
9882507167
XSD:

<?xml version="1.0" encoding="UTF-8"?>
<company>
<companyname>capgemini</companyname>
<address>mumbai</address>
    <department>
        <dname>software</dname>
        <deptphoneno>9876543210</deptphoneno>
        <deptfaxno>0447654321</deptfaxno>
        <deptemail>soft@capgemini.com</deptemail>
            <employee>
                <empid>101</empid>
                <ename>rajat</ename>
                <emailid>rajat@capgemini.com</emailid>
                <phoneno>9876543211</phoneno>
            </employee>
            <contractemployee>
                <name>jade</name>
                <phoneno>9882507167</phoneno>
            </contractemployee>
    </department>
</company>
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xsd:element name="company">
        <xsd:complexType>
        <xsd:sequence>
            <xsd:element name="companyname" type="xsd:string"/>
            <xsd:element name="address" type="xsd:string"/>
            <xsd:element name="department">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="dname" type="xsd:string"/>
                        <xsd:element name="deptphoneno" type="xsd:long"/>
                        <xsd:element name="deptfaxno" type="xsd:int"/>
                        <xsd:element name="deptemail" type="xsd:string"/>
                        <xsd:element name="employee">
                            <xsd:complexType>
                                <xsd:sequence>
                                    <xsd:element name="empid" type="xsd:int"/>
                                    <xsd:element name="ename" type="xsd:string"/>
                                    <xsd:element name="emailid" type="xsd:string"/>
                                    <xsd:element name="phoneno" type="xsd:long"/>
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                        <xsd:element name="contractemployee">
                            <xsd:complexType>
                                <xsd:sequence>
                                    <xsd:element name="name" type="xsd:string"/>
                                    <xsd:element name="phoneno" type="xsd:long"/>
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
</xsd:element>
</xsd:schema>

你很接近答案。根据E-R图,部门和员工之间存在1-多个强制关系,而部门和合同员工之间存在1-多个可选关系。只要存在可选关系,我们就使用minOccurs=“0”

我将发布XML和XSD,以便您更好地理解它。 XML

<?xml version="1.0" encoding="UTF-8"?>
<company
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation='companyxsd.xsd'>
    <companyname>Capgemini</companyname>
    <address>Mumbai</address>
    <department>
        <dname>Operations</dname>
        <deptphoneno>987610</deptphoneno>
        <deptfaxno>223654</deptfaxno>
        <deptemail>op@gmail.com</deptemail>
        <employee>
            <empid>20</empid>
            <ename>Mukesh</ename>
            <emailid>mukesh@gmail.com</emailid>
            <phoneno>967642</phoneno>
        </employee>
        <contractemployee>
            <name>Ramesh</name>
            <phoneno>25643</phoneno>
        </contractemployee>
    </department>
</company>

凯捷
孟买
操作
987610
223654
op@gmail.com
20
穆克什
mukesh@gmail.com
967642
拉梅什
25643
此XML的XSD: XSD

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="company">
<xs:complexType>
<xs:sequence>
<xs:element name="companyname" type="xs:string"></xs:element>
<xs:element name="address" type="xs:string"></xs:element>
<xs:element name="department" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="dname" type="xs:string"></xs:element>
<xs:element name="deptphoneno" type="xs:long"></xs:element>
<xs:element name="deptfaxno" type="xs:long"></xs:element>
<xs:element name="deptemail" type="xs:string"></xs:element>


<xs:element name="employee" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="empid" type="xs:int"></xs:element>
<xs:element name="ename" type="xs:string"></xs:element>
<xs:element name="emailid" type="xs:string"></xs:element>
<xs:element name="phoneno" type="xs:long"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="contractemployee" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"></xs:element>
<xs:element name="phoneno" type="xs:long"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>

</xs:sequence>
</xs:complexType>
</xs:element>

</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>


希望这对您有所帮助:)

1-many可选部分唯一没有引起我太多注意的部分:p谢谢您的帮助:)