2013-04-24 4 views
9

Ich habe ein PHP-Projekt in Eclipse mit vielen XML-Dateien. Gerade jetzt, alle meine XML-Dateien fehlschlagen Validierung, mit der folgenden Fehlermeldung:XML/XSD Zwischen publicId und systemId sind Leerzeichen erforderlich.

White spaces are required between publicId and systemId 

Ich habe um gesucht, und publicId und systemId scheinen in XML-Dateien werden im Zusammenhang, die mit DOCTYPE beginnen. Meins nicht. Ein weiterer SO posting angegeben, um die XSD zu dem XML-Katalog in Eclipse hinzuzufügen, aber das scheint keinen Unterschied zu machen.

Eine XML-Beispiel ist die folgende:

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

Ich bin ein wenig ratlos an, was als nächstes zu versuchen. Ich kann die XML-Validierung deaktivieren, aber ich hasse solche Dinge, um Fehler in Eclipse zu beheben. Wenn es einen Unterschied macht, verwende ich Eclipse 3.7 mit PDT. Die XML-Dateien, die fehlschlagen, sind alle Teil von Bibliotheken, daher nehme ich an, dass es sich um ein Eclipse-Konfigurationsdetail handeln muss, das geändert/behoben werden musste, um das Problem zu lösen, aber ich habe keine Ahnung.

Irgendwelche Vorschläge, was ich versuchen kann, um meine XML-Dateien validieren zu lassen?

+1

Ich weiß nicht, was hier falsch ist, aber es hat nichts mit der XML-Datei zu tun, die Sie uns gezeigt haben. –

+0

Einverstanden. Wie ich schon sagte, bin ich ziemlich überzeugt, dass es sich um ein Eclipse-Konfigurationsproblem handelt, aber ich habe keine Ahnung, was. Ich zeige die XML-Datei b/c ohne sie, die erste Frage (zu Recht) wäre die XML-Datei. Da es sich hierbei um XML-Dateien handelt, die vom Hersteller erstellt wurden (und einige davon), bin ich ziemlich zuversichtlich, dass die XML-Dateien alle gültig sind. –

+0

Beachten Sie, dass dies kein Validitätsproblem, sondern ein Problem der Wohlgeformtheit ist. In Ihren Schuhen würde ich sehen, ob ich jedes XML-Dokument identifizieren könnte, das das System möglicherweise von einer Anfrage zur Validierung eines Dokuments bis zu der Fehlermeldung, die Sie sehen, auf seinem Weg berührt. Das zu validierende Dokument (wenn das von Ihnen angezeigte Beispiel typisch ist, ist das Problem hier nicht vorhanden), die Schemadokumente, die das Schema (dito) definieren, die Konfigurationsdateien für Eclipse und das Validierungsmodul in Eclipse, ... –

Antwort

12

Grundsätzlich ist die Reihenfolge so sein sollte - 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"> 
+0

Diese Antwort sollte akzeptiert werden ... –

+0

Arbeitete für mich. Vielen Dank !! – Akash5288

+0

gibt es viele ähnliche Fragen..aber diese Antwort hat mein Problem gelöst. Vielen Dank. – pinkpanther

Verwandte Themen