我在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文件?
答案 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" >