cvc-complex-type.4:属性 {0} 必须出现在元素 {1} 上
cvc-complex-type.4: Attribute {0} must appear on element {1}
我是 xml 的新手,正在尝试使用相应的 xsd 验证 xml 但遇到错误:
cvc-complex-type.4: Attribute 'Companyname' must appear on element
'company'
尽管我已经在 xml 和 xsd 中添加了公司名称。什么可能导致此错误。任何 help/suggestion?
XML:
<?xml version="1.0" encoding="utf-8"?>
<company Companyname="abc" address="hj" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:SchemaLocation="companyxsd.xsd" >
<department dname="dfsdf" deptphoneno="1232321" deptfaxno="2323" deptemail="fefsf">
<employee empid="fsd" ename="fuehuf" emailid="fhueh" phoneno="364764"> </employee>
<employee empid="fsd" ename="fuehuf" emailid="fhueh" phoneno="364764"> </employee>
<contractEmployee name="fdsf" phoneno="12345"> </contractEmployee>
</department>
</company>
companyxsd.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" >
<xs:element name="company" type="comType"/>
<xs:complexType name="comType">
<xs:sequence>
<xs:element name="department" type="deptType"/>
</xs:sequence>
<xs:attribute type="xs:string" name="Companyname" use="required"/>
<xs:attribute type="xs:string" name="address" use="required"/>
</xs:complexType>
<xs:complexType name="deptType">
<xs:sequence>
<xs:element name="employee" type="empType" minOccurs="1" maxOccurs="unbounded"/>
<xs:element name="contractEmployee" type="conType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute type="xs:string" name="dname" use="required"/>
<xs:attribute type="xs:integer" name="deptphoneno" use="required"/>
<xs:attribute type="xs:integer" name="deptfaxno" use="required"/>
<xs:attribute type="xs:string" name="deptemail" use="required"/>
</xs:complexType>
<xs:complexType name="empType">
<xs:attribute type="xs:string" name="empid" use="required"/>
<xs:attribute type="xs:string" name="ename" use="required"/>
<xs:attribute type="xs:string" name="emailid" use="required"/>
<xs:attribute type="xs:integer" name="phoneno" use="required"/>
</xs:complexType>
<xs:complexType name="conType">
<xs:attribute type="xs:string" name="name" use="required"/>
<xs:attribute type="xs:integer" name="phoneno" use="required"/>
</xs:complexType>
</xs:schema>
ER DIAGRAM
您的 XML 包含一些错误。它的格式不正确(开始标记与结束标记不匹配)并且包含许多违反您的架构的内容(employee
和 contractEmployee
标记必须为空)。
我已经清理了你的 XML:
<?xml version="1.0" encoding="utf-8"?>
<company Companyname="abc" address="hj" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<department dname="dfsdf" deptphoneno="1232321" deptfaxno="2323" deptemail="fefsf">
<employee empid="fsd" ename="fuehuf" emailid="fhueh" phoneno="364764"/>
<employee empid="fsd" ename="fuehuf" emailid="fhueh" phoneno="364764"/>
<contractEmployee name="fdsf" phoneno="12345"/>
</department>
</company>
这可以根据您的模式正确验证,例如可以测试在 this site.
您可能遇到的任何其他问题都与您执行验证的方式有关,与 XML 或 XSD 内容无关。
我是 xml 的新手,正在尝试使用相应的 xsd 验证 xml 但遇到错误:
cvc-complex-type.4: Attribute 'Companyname' must appear on element 'company'
尽管我已经在 xml 和 xsd 中添加了公司名称。什么可能导致此错误。任何 help/suggestion?
XML:
<?xml version="1.0" encoding="utf-8"?>
<company Companyname="abc" address="hj" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:SchemaLocation="companyxsd.xsd" >
<department dname="dfsdf" deptphoneno="1232321" deptfaxno="2323" deptemail="fefsf">
<employee empid="fsd" ename="fuehuf" emailid="fhueh" phoneno="364764"> </employee>
<employee empid="fsd" ename="fuehuf" emailid="fhueh" phoneno="364764"> </employee>
<contractEmployee name="fdsf" phoneno="12345"> </contractEmployee>
</department>
</company>
companyxsd.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" >
<xs:element name="company" type="comType"/>
<xs:complexType name="comType">
<xs:sequence>
<xs:element name="department" type="deptType"/>
</xs:sequence>
<xs:attribute type="xs:string" name="Companyname" use="required"/>
<xs:attribute type="xs:string" name="address" use="required"/>
</xs:complexType>
<xs:complexType name="deptType">
<xs:sequence>
<xs:element name="employee" type="empType" minOccurs="1" maxOccurs="unbounded"/>
<xs:element name="contractEmployee" type="conType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute type="xs:string" name="dname" use="required"/>
<xs:attribute type="xs:integer" name="deptphoneno" use="required"/>
<xs:attribute type="xs:integer" name="deptfaxno" use="required"/>
<xs:attribute type="xs:string" name="deptemail" use="required"/>
</xs:complexType>
<xs:complexType name="empType">
<xs:attribute type="xs:string" name="empid" use="required"/>
<xs:attribute type="xs:string" name="ename" use="required"/>
<xs:attribute type="xs:string" name="emailid" use="required"/>
<xs:attribute type="xs:integer" name="phoneno" use="required"/>
</xs:complexType>
<xs:complexType name="conType">
<xs:attribute type="xs:string" name="name" use="required"/>
<xs:attribute type="xs:integer" name="phoneno" use="required"/>
</xs:complexType>
</xs:schema>
ER DIAGRAM
您的 XML 包含一些错误。它的格式不正确(开始标记与结束标记不匹配)并且包含许多违反您的架构的内容(employee
和 contractEmployee
标记必须为空)。
我已经清理了你的 XML:
<?xml version="1.0" encoding="utf-8"?>
<company Companyname="abc" address="hj" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<department dname="dfsdf" deptphoneno="1232321" deptfaxno="2323" deptemail="fefsf">
<employee empid="fsd" ename="fuehuf" emailid="fhueh" phoneno="364764"/>
<employee empid="fsd" ename="fuehuf" emailid="fhueh" phoneno="364764"/>
<contractEmployee name="fdsf" phoneno="12345"/>
</department>
</company>
这可以根据您的模式正确验证,例如可以测试在 this site.
您可能遇到的任何其他问题都与您执行验证的方式有关,与 XML 或 XSD 内容无关。