我似乎无法超越这个问题,我真的很想让它发挥作用。使用我的主模式rfidImage.xsd,我想导入一个描述基于base64的JPG的MIME方案的模式。我想我已经尝试了所有可能的组合,除了使这项工作的组合。我可以放弃并将xmlmime.xsd中的模式代码包含到rfidImage.xsd中,但我想在此处进一步了解一下。这两个模式有不同的名称空间,所以我应该很好地使用import而不是include。所以,我的基本问题是这个错误信息:
导入的架构'xmlmime.xsd'与宣布的'http://www.quikq.com/xsd/rfidImage'具有不同的targetNameSpace'http://www.w3.org/2005/05/xmlmime'
我在IBM AS / 400,V7R1和C ++,SAX2解析器上使用旧版本的Xerces(可能是2.6)。
rfidImage.xsd:
<?xml version="1.0"?>
<xs:schema
targetNamespace="http://www.quikq.com/xsd/rfidImage"
xmlns="http://www.quikq.com/xsd/rfidImage"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://www.quikq.com/xsd/JPEGPicture"
xmlns:xmime="http://www.w3.org/2005/05/xmlmime"
elementFormDefault="qualified">
<!-- Import a supporting document -->
<xs:import namespace="http://www.w3.org/2005/05/xmlmime"
schemaLocation="xmlmime.xsd"/>
xmlmime.xsd:
<?xml version="1.0"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xmime="http://www.w3.org/2005/05/xmlmime"
targetNamespace="http://www.w3.org/2005/05/xmlmime">
我现在迷路了。
答案 0 :(得分:0)
如果xmlmime.xsd的内容与您描述的内容相同,那么您不应该收到报告的错误消息。您显示的导入和您显示的架构文档彼此一致。
一个可能的原因是您认为xmlmime.xsd与实际存在的内容之间存在不一致。是否已将rfidImage.xsd的内容意外保存到xmlmime.xsd中?我会通过关闭所有软件并检查内容来检查这一点;通过查看编辑器缓冲区而不是磁盘上的文件,我附近的人被咬过的次数已经过时了。
另一个可能的原因:由于某些原因,Xerces实际上并没有读取xmlmime.xsd,而是读取其他一些架构文档。我通过在xmlmime.xsd的前几行中引入格式错误并验证Xerces在尝试读取架构文档时引发错误来检查这一点。
如果这些都没有产生任何前向动作,您可以尝试不指向xmlmime模式文档的本地副本,而是指向http://www.w3.org/2005/05/xmlmime.xsd的版本 - 通常,W3C鼓励模式文档的缓存和使用本地副本,但出于测试目的,它可能会对事物有所了解。
祝你好运。