13

多くの XML ファイルを含む Eclipse の PHP プロジェクトがあります。現在、すべての XML ファイルが検証に失敗し、次のエラー メッセージが表示されます。

White spaces are required between publicId and systemId

いろいろ調べたところ、publicId と systemId は DOCTYPE で始まる XML ファイルに関連しているようです。私はしません。別のSO 投稿では、XSD を Eclipse の XML カタログに追加するように指示されていましたが、違いはないようです。

サンプル XML の 1 つを次に示します。

<?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="Doctrine\Tests\Models\CMS\CmsAddress" 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 構成の詳細であるに違いないと推測しますが、何が原因かわかりません。

XMLファイルを検証するために私が試みることができる提案はありますか?

4

2 に答える 2

16

基本的に、順序は次のようにする必要があります-プロパティの後にプロパティ.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">
于 2015-06-05T05:01:43.670 に答える
0

最後の URL を除くxsi:schemaLocationプロパティの各 URL の後に空白スペース " " を維持します 。

xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping**<空白スペース 1 つ>** http://www.doctrine-project.org/schemas/orm/doctrine-mapping .xsd ">

于 2015-01-16T15:42:23.740 に答える