bse*_*sel 5 xml xsd xml-validation
我想使用XSD文件进行模式验证.当我将XSD文件导入Eclipse而不运行验证类时,我有以下错误:
src-resolve:无法将名称'ds:Signature'解析为'element declaration'组件
我是XML和XSD验证过程的新手.虽然我在谷歌上寻找类似的问题,但我无法弄清楚这里有什么问题.
XSD文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xerces="http://xerces.apache.org"
xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:abc="http://abc.123.com" targetNamespace="http://abc.123.com"
xmlns:xades141="http://uri.etsi.org/01903/v1.4.1#" elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:import namespace="http://uri.etsi.org/01903/v1.3.2#" schemaLocation="XAdES.xsd"/>
<xs:import namespace="http://uri.etsi.org/01903/v1.4.1#" schemaLocation="XAdESv141.xsd"/>
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
<xs:complexType name="headerType">
<xs:sequence>
<xs:element name="doorNumber" type="xs:int"/>
<xs:element ref="ds:Signature"/>
</xs:sequence>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)
我该如何修改XSD来修复此错误?
如果您xmldsig-core-schema.xsd与XSD位于同一目录中,并且与XSD相同,那么您不应该收到有关无法解决的错误ds:Signature.
因此,我怀疑您的导入失败,并且您丢失或忽略了以下警告:
[警告] try.xsd:9:56:schema_reference.4:无法读取模式文档'xmldsig-core-schema.xsd',因为1)找不到文档; 2)文件无法阅读; 3)文档的根元素不是
<xsd:schema>.
试试这个XSD作为测试; 它直接从URL加载xmldsig-core-schema.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:abc="http://abc.123.com"
targetNamespace="http://abc.123.com"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
<xs:complexType name="headerType">
<xs:sequence>
<xs:element name="doorNumber" type="xs:int"/>
<xs:element ref="ds:Signature"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)
我测试了上面的XSD,发现它消除了你看到的分辨率错误.