JavaScript, HTML, CSS e... !
0 commenti

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:



Error on line 1: XML document structures must start and end within the same entity

Fig. 1 - Error on line 1: XML document structures must start and end within the same entity


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.

Tags

Michele Pisani

Michele Pisani

Sviluppatore Javascript ed esperto in Digital Analytics

L'esperienza nel settore Digital Analytics unita ad anni di sviluppo in Javascript ha trovato la massima espressione in Google Apps Script che mi ha permesso, con estrema facilità e poche righe di codice, di realizzare potenti applicazioni interattive e processi automatizzati integrati con i prodotti della G Suite.

Come contattarmi
scrivi un commento

0 Commenti

Non ci sono commenti

Nessuno ha ancora commentato questo articolo, fallo tu per primo!

scrivi un commento

Scrivi un commento

Il tuo indirizzo email non sarà pubblicato.I campi contrassegnati da un * sono obbligatori
Puoi utilizzare i seguenti tag nei commenti:
[bold]testo[/bold] se vuoi evidenziare un testo con il grassetto[code]function helloworld() { }[/code] se vuoi pubblicare una porzione di codice[url]https://www.appsscript.it[/url] se devi riferirti ad un indirizzo web