在此处输入图像描述
我的XML:
<?xml version="1.0" encoding="UTF-8"?>
<company xmlns="urn:company.Namespace"
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xs:schemaLocation="urn:company.Namespace companyxsd.xsd">
<companyname>ABC company</companyname>
<address>xyz street, India.</address>
<department>
<dname>Marketing</dname>
<deptphoneno>9876543210</deptphoneno>
<deptfaxno>0442456879</deptfaxno>
<deptemail>marketing@abc.com</deptemail>
<employee>
<empid>101</empid>
<ename>Rishie</ename>
<emailid>rishie@abc.com</emailid>
<phoneno>9876543211</phoneno>
</employee>
<contractemployee>
<name>Ravi</name>
<phoneno>9874563214</phoneno>
</contractemployee>
</department>
</company>
我的 xsd 文件:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
targetNamespace="urn:company.Namespace" >
<xs:element name="company">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="companyname"/>
<xs:element type="xs:string" name="address"/>
<xs:element name="department">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="dname"/>
<xs:element type="xs:short" name="deptphoneno"/>
<xs:element type="xs:short" name="deptfaxno"/>
<xs:element type="xs:string" name="deptemail"/>
<xs:element name="employee">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:short" name="empid"/>
<xs:element type="xs:string" name="ename"/>
<xs:element type="xs:string" name="emailid"/>
<xs:element type="xs:short" name="phoneno"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="contractemployee">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="name"/>
<xs:element type="xs:short" name="phoneno"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
我对XML模式等仍然有点陌生,并且一直在努力开发一些XML和XML模式。
该架构代表了我真正的XML的结构。
现在,当我尝试验证我的 XML 时,出现此错误:
cvc-elt.1:找不到元素"公司"的声明。[注7]
我认为这与公司元素上的命名空间问题有关,但我不确定。
我做错了什么?
您的 XML 对 XSD 无效:我收到许多错误,例如
Description: cvc-maxInclusive-valid: Value '9876543210' is not facet-valid with respect to maxInclusive '32767' for type 'short'.
Start location: 10:46
但是,您还没有走得那么远。这必须与您运行架构验证的方式有关,因此您需要告诉我们您正在运行哪个架构处理器以及如何运行它。
(顺便说一下,切勿对电话号码使用 xs:integer 等数字类型,因为数字类型假定前导零不重要。