2

我在 Eclipse 中创建了一个新项目,只是为了验证一个 xml,这要归功于相应的 xsd。我写了 xsds 和 xml 文件。

主要的 XSD 是这样的:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  xmlns="http://www.myurl.com/schemas" 
  targetNamespace="http://www.myurl.com/schemas" 
  version="1.0">
<xs:include schemaLocation="other_xsd.xsd"/>
[...]

位于other_xsd.xsd同一目录中,如下所示:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  xmlns="http://www.myurl.com/schemas" 
  targetNamespace="http://www.myurl.com/schemas">

它主要包含complexType主要xsd中使用的s

xml 示例文件也位于同一目录中,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<myTag xmlns="http://www.myurl.com/schemas" myAttributes="2011-09-07">

所有这三个文件都已加载到我的 Eclipse 项目的同一目录中。然而我一直有这个警告:

未检测到文档的语法约束(DTD 或 XML 模式)。example.xml XMLValidation/Test line 1 XML 问题

我的 xml 或 xsd 中缺少什么以便我可以验证我的 xml 文件?

4

2 回答 2

1

在 Preferences -> XML -> XML Catalog 下,添加用户指定的条目。将架构路径/文件名放在位置字段中(如果需要,使用工作区或文件系统按钮)。此时,应使用您的命名空间填充 Key 字段。单击确定几次退出,然后右键单击您的 xml 文件并单击验证。Eclipse 应该将您的“xmlns”属性与“Key”匹配,并使用适当的模式。

于 2012-12-11T00:24:17.477 回答
0

您需要告诉 eclipse xml 处理器在哪里可以找到架构。编辑 Preferences->XML->XML Catalog 以便将命名空间映射到模式资源,或者只在实例文档中包含 schemaLocation。假设您的主要架构是main.xsd

<myTag xmlns="http://www.myurl.com/schemas" 
       myAttributes="2011-09-07"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.myurl.com/schemas main.xsd" >
于 2011-09-08T07:10:06.023 回答