2013-04-24 12 views
9

Ho un progetto PHP in Eclipse con molti file XML. In questo momento, tutti i miei file XML non riescono convalida, con il seguente messaggio di errore:XML/XSD Sono richiesti spazi bianchi tra publicId e systemId

White spaces are required between publicId and systemId 

Ho cercato in giro, e publicId e systemId sembrano essere legati a file XML che iniziano con DOCTYPE. Il mio no Un altro SO posting indica di aggiungere XSD al catalogo XML in Eclipse, ma ciò non sembra fare la differenza.

Una XML di esempio è la seguente:

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

Sono un po 'perplesso a che cosa da provare dopo. Posso disabilitare la convalida XML, ma odio fare cose del genere per risolvere errori in Eclipse. Se fa alcuna differenza, sto usando Eclipse 3.7 con PDT. I file XML che non funzionano fanno tutte parte delle librerie quindi presumo che debba essere un dettaglio di configurazione Eclipse che è stato necessario modificare/rettificare per risolvere il problema, ma non ho idea di cosa.

Qualche suggerimento su cosa posso provare a convalidare i miei file XML?

+1

Non so cosa c'è che non va qui, ma non ha nulla a che fare con il file XML che ci hai mostrato. –

+0

concordato. Come ho detto, sono abbastanza convinto che si tratti di un problema di configurazione di Eclipse, ma non ho idea di cosa. Sto mostrando il file XML b/c senza di esso, la prima domanda (giustamente) dovrebbe essere il file XML. Dato che si tratta di file XML prodotti dai produttori (e molti di essi), sono abbastanza fiducioso che i file XML siano tutti validi. –

+0

Si noti che questo non è un problema di validità ma un problema di buona formazione. Nei tuoi panni vedrei se riesco a identificare ogni documento XML che il sistema potrebbe in teoria toccare da una richiesta di convalida di un documento al messaggio di errore che stai vedendo. Il documento che viene convalidato (se l'esempio che mostri è tipico, il problema non è qui), i documenti dello schema che definiscono lo schema (idem), i file di configurazione per Eclipse e il modulo di validazione in Eclipse, ... –

risposta

12

In sostanza, l'ordine dovrebbe essere come questo - proprietà e quindi seguito da 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

Questa risposta dovrebbe essere accettata ... –

+0

Ha funzionato per me. Grazie !! – Akash5288

+0

ci sono molte domande simili ... ma questa risposta ha risolto il mio problema. Grazie. – pinkpanther

Problemi correlati