问题描述
我在 Eclipse 中有一个包含大量 XML 文件的 PHP 项目.现在,我所有的 XML 文件都未通过验证,并显示以下错误消息:
I've got a PHP project in Eclipse with a lot of XML files. Right now, all my XML files are failing validation, with the following error message:
White spaces are required between publicId and systemId
我搜索了一下,publicId和systemId似乎与以DOCTYPE开头的XML文件有关.我的没有.另一个 SO 张贴 表示将 XSD 添加到 Eclipse 中的 XML 目录中,但这似乎没有什么不同.
I've searched around, and publicId and systemId seem to be related to XML files that start with DOCTYPE. Mine don't. Another SO posting indicated to add the XSD to the XML catalog in Eclipse, but that doesn't seem to make a difference.
一个示例 XML 如下:
One sample XML is the following:
<?xml version="1.0" encoding="UTF-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
http://www.doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
<entity name="DoctrineTestsModelsCMSCmsAddress" table="cms_users">
<named-native-queries>
<named-native-query name="find-all" result-set-mapping="mapping-find-all">
<query>SELECT id, country, city FROM cms_addresses</query>
</named-native-query>
<named-native-query name="find-by-id" result-class="CmsAddress">
<query>SELECT * FROM cms_addresses WHERE id = ?</query>
</named-native-query>
<named-native-query name="count" result-set-mapping="mapping-count">
<query>SELECT COUNT(*) AS count FROM cms_addresses</query>
</named-native-query>
</named-native-queries>
<sql-result-set-mappings>
<sql-result-set-mapping name="mapping-find-all">
<entity-result entity-class="CmsAddress">
<field-result name="id" column="id"/>
<field-result name="city" column="city"/>
<field-result name="country" column="country"/>
</entity-result>
</sql-result-set-mapping>
<sql-result-set-mapping name="mapping-without-fields">
<entity-result entity-class="CmsAddress"/>
</sql-result-set-mapping>
<sql-result-set-mapping name="mapping-count">
<column-result name="count"/>
</sql-result-set-mapping>
</sql-result-set-mappings>
<id name="id" type="integer" column="id">
<generator strategy="AUTO"/>
</id>
<field name="country" column="country" type="string" length="50"/>
<field name="city" column="city" type="string" length="50"/>
<field name="zip" column="zip" type="string" length="50"/>
<one-to-one field="user" target-entity="CmsUser" inversed-by="address">
<join-column referenced-column-name="id" />
</one-to-one>
</entity>
</doctrine-mapping>
我对接下来要尝试什么感到有些困惑.我可以禁用 XML 验证,但我讨厌这样做来解决 Eclipse 中的错误.如果它有任何区别,我正在使用带有 PDT 的 Eclipse 3.7.失败的 XML 文件都是库的一部分,所以我认为它必须是 Eclipse 配置细节,必须修改/纠正才能解决问题,但我不知道是什么.
I'm a bit stumped at what to try next. I can disable XML validation, but I hate doing things like that to resolve errors in Eclipse. If it makes any difference, I'm using Eclipse 3.7 with PDT. The XML files that fail are all part of libraries so I presume it must be an Eclipse configuration detail that had to be modified/rectified to resolve the issue, but I have no idea what.
有什么建议可以尝试验证我的 XML 文件吗?
Any suggestions what I can try to have my XML files validate?
推荐答案
基本上顺序应该是这样的--property 后跟property.xsd
Basically, the order should be like this - property and then followed by property.xsd
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
这篇关于XML/XSD publicId 和 systemId 之间需要空格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!