Eclipse中的XSD验证:“没有语法约束”警告?

时间:2011-09-07 15:21:44

标签: xml eclipse xsd xsd-validation

我在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">

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

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文件?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

你需要告诉eclipse xml处理器在哪里找到模式。编辑Preferences-&gt; XML-&gt; 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" >