La struttura del documento XML deve iniziare e terminare con la stessa entità
Error on line 1: XML document structures must start and end within the same entity
Ogni documento XML presenta un tag iniziale di dichiarazione e a seguire un unico elemento radice dentro il quale sono annidati i successivi nodi. Così come per l'HTML, ogni elemento XML che sia in grado di avere del contenuto deve disporre di un tag di chiusura.
Di seguito un esempio di struttura XML corretta (prelevata dall'articolo "Inviare una richiesta HTTP POST con XML in input e output e parsing della risposta"):
<?xml version="1.0" encoding="utf-8"?>
<GetRoutesRS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Success>True</Success>
<Routes>
<!-- ... -->
<IG_Route>
<Departure LocationCode="LI" LocationDescription="LIVORNO" ></Departure>
<Arrival LocationCode="PI" LocationDescription="PISA" ></Arrival>
</IG_Route>
<IG_Route>
<Departure LocationCode="LI" LocationDescription="LIVORNO" ></Departure>
<Arrival LocationCode="LU" LocationDescription="LUCCA" ></Arrival>
</IG_Route>
<!-- ... -->
</Routes>
</GetRoutesRS>
Può capitare che lavorando con le strutture XML, effettuando ad esempio il parsing di tale struttura tramite il servizio XmlService.parse(xml), possa essere restituito dall'editor di script l'errore "Error on line 1: XML document structures must start and end within the same entity.", Fig. 1:
Il messaggio di errore è abbastanza autosplicativo ed indica che la struttura XML che stiamo tentando di gestire non è strutturata nel modo corretto, nel caso specifico non c'è corrispondenza tra le aperture e chiusure degli elementi al suo interno.
Per riprendere l'esempio funzionante di cui sopra, se provassimo a rimuovere il tag di chiusura di Routes e ne eseguissimo il parsing otterremmo l'errore in oggetto.
Solitamente, a meno di artefatti lato script in fase di lavorazione, questo tipo di segnalazione può comparire quando si tenta di gestire una struttura XML ottenuta in input da un servizio esterno e la causa, così come la soluzione, è da attribuirsi e risolversi lato web service.
Non ci sono commenti
Nessuno ha ancora commentato questo articolo, fallo tu per primo!
scrivi un commento