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?
Non so cosa c'è che non va qui, ma non ha nulla a che fare con il file XML che ci hai mostrato. –
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. –
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, ... –