cvc-elt.1:找不到元素'change-set'的声明



我正在尝试使用几年前的一些开源软件来提供RFID服务(GitHub:fosstrak capture application(,但有一个我无法修复的错误。

(null: 3, 230): cvc-elt.1: Cannot find the declaration of element 'change-set'.

我正在使用Docker来容器化运行Tomcat7和Java8的应用程序。

XML 如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<change-set xmlns="http://drools.org/drools-5.0/change-set" 
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:schemaLocation="http://drools.org/drools-5.0/change-set.xsd http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-api/src/main/resources/change-set-1.0.0.xsd">
<add>
<resource source="classpath:drools/SimpleEPCISDocument.drl" type="DRL" />
</add>
</change-set>

和 XSD:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
elementFormDefault="qualified" 
targetNamespace="http://drools.org/drools-5.0/change-set" 
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:change-set="http://drools.org/drools-5.0/change-set">
<xsd:import namespace="http://www.w3.org/2001/XMLSchema-instance"/>
<xsd:element name="change-set">
<xsd:complexType>
<xsd:choice>
<xsd:element ref="change-set:add"/>
<xsd:element ref="change-set:remove"/>
</xsd:choice>
</xsd:complexType>
</xsd:element>
<xsd:element name="add">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" ref="change-set:resource"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="remove">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" ref="change-set:resource"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="resource">
<xsd:complexType>
<xsd:sequence>
<xsd:any minOccurs="0"/>
<xsd:element minOccurs="0" ref="change-set:decisiontable-conf"/>
</xsd:sequence>
<!-- URL to the resource, can be file based -->
<xsd:attribute name="source" use="required" type="xsd:anyURI"/>
<!-- for example, DRL, or PKG -->
<xsd:attribute name="type" use="required" type="xsd:string"/>
<xsd:attribute name="basicAuthentication" type="xsd:string"/>
<xsd:attribute name="username" type="xsd:string"/>
<xsd:attribute name="password" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="decisiontable-conf">
<xsd:complexType>
<xsd:attribute name="input-type" use="required" type="xsd:NCName"/>
<xsd:attribute name="worksheet-name" use="required" type="xsd:NCName"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>

更改

xs:schemaLocation="http://drools.org/drools-5.0/change-set.xsd [...]

xs:schemaLocation="http://drools.org/drools-5.0/change-set [...]

因为schemaLocation必须是一系列命名空间 URI 和 XSD 位置对。 在这种情况下,命名空间 URI 为http://drools.org/drools-5.0/change-set,它与 XML 中根元素的命名空间和 XSD 的目标命名空间匹配。

参见

  • 如何正确引用本地 XML 架构文件?

您还必须处理后续的唯一粒子属性问题,但如果您无法解决,这是一个单独的问题,值得自己提出问题。 从 XSD 验证开始 - 按顺序进行任何验证("唯一粒子归因"(。

相关内容

  • 没有找到相关文章

最新更新