【问题标题】:Exception: cvc-elt.1.a Cannot find the declaration of element 'company'例外:cvc-elt.1.a 找不到元素“公司”的声明
【发布时间】:2017-08-09 08:32:06
【问题描述】:

enter image description here

我的 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 Schema 等还有些陌生,并且一直致力于开发一些 XML 和 XML 模式。

架构代表了我的真实 XML 的结构。

现在,当我尝试验证我的 XML 时,我收到了这个错误:

cvc-elt.1:找不到元素“公司”的声明。 [7]

我认为这与 company 元素上的命名空间问题有关,但我不确定。

我做错了什么?

【问题讨论】:

    标签: xml xsd


    【解决方案1】:

    您的 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 等数字类型用于电话号码,因为数字类型假定前导零不重要。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-05
      相关资源
      最近更新 更多