我必须从实体关系图生成XML和XSD。我的XML是正确的,但我无法验证使用此XML文档生成的XSD,因为它会引发错误:从元素'employee'开始发现无效内容。预计会有一个“{contractemployee}”。
XML:
<?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>
XSD:
{{1}}
答案 0 :(得分:1)
你非常接近答案。根据E-R图,部门和员工之间存在1个强制性关系,而部门和合同员工之间存在1个可选关系。只要存在可选关系,我们就使用minOccurs =“0”。
我发布了XML&amp; 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>
此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>
希望这可以帮助你:)