首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XSD导入NameSpaces

XSD导入NameSpaces
EN

Stack Overflow用户
提问于 2012-05-25 13:29:01
回答 1查看 1.9K关注 0票数 2

我有两个xsd文件"first.xsd“和"second.xsd”。

在second.xsd内部,我想引用在first.xsd中定义的元素(具有不同的命名空间)。

我的second.xsd看起来像:

代码语言:javascript
复制
<xs:schema ... xmlns:schema1="http://www.schema.org/schema1" targetNamespace "http://www.schema.org/schema2   ...  >
<xs:import namespace = "http://www.schema.org/schema1" schemaLocation = "first.xsd" />

<xs:element name = "complex1">
<xs:complexType>
.........
<xs:element ref="schema1:name2"/>
.........
</xs:complexType>
</xs:element>

现在,我希望在second.xsd中包含并导入first.xsd,因此在first.xsd中执行以下操作:

代码语言:javascript
复制
<xs:schema ... xmlns:schema2="http://www.schema.org/schema2" targetNamespace "http://www.schema.org/schema1  ... >
<xs:import namespace="http://www.schema.org/schema2" schemaLocation="second.xsd">
<xs:element name = "name1"/>
<xs:element name = "name2"/>
<xs:element name = "name3"/>

这是正确的方法吗,因为我无法成功地验证架构。

是因为某个循环命名空间包含了问题吗??

我正在使用氧气xml开发人员来验证模式文件和验证时的first.xsd:

EXerces src-解析:无法将名称解析为(N)类型定义组件。(second.xsd)

但是如果我单独验证second.xsd文件,它会说模式是有效的。

在我的实际案例中,我有一个非常复杂的场景,所以我把它简化为一个简单的例子,如上面所示。

有人能帮忙吗。

EN

回答 1

Stack Overflow用户

发布于 2012-05-25 16:52:29

拥有这种循环依赖关系是完全有效的(尽管存在争议);模式集不能验证的原因不能是它;您必须检查模式处理器生成的错误,并尝试理解其中的每一个错误。人们普遍认为,最好从第一条错误消息开始。

您的代码片段是无效的,因为您引用的是在element2 schema1中没有列出的一个(在second.xsd中)。这是一种不会通过验证的东西,所以关注它们。

如果您需要帮助了解真正的问题是什么,那么首先用实际的错误消息更新您的帖子。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10755288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档