Schemi XSD che consentono caratteri speciali / riservati nel tag dell'elemento stringa

StackOverflow https://stackoverflow.com/questions/806191

  •  03-07-2019
  •  | 
  •  

Domanda

In un tag di elemento stringa il parser XML verrà confuso se trova i seguenti caratteri

'
quot &;
lt &;
gt &;

&

amp;

(ad esempio, supponiamo che il nome della società sia stato recuperato da un campo del database e si presenta così: " Smith & amp; Sons ")

La domanda è: come puoi progettare la tua XSD in modo da ignorare questi caratteri se trovati all'interno di un elemento?

È stato utile?

Soluzione

Non puoi far ignorare questi personaggi.

Sono non validi in XML e pertanto devono essere salvati o inseriti in sezioni CDATA. Non è possibile che questi caratteri vengano visualizzati in XML a meno che non si crei l'XML usando mezzi impropri (vale a dire: concatenazione di stringhe).

Se costruisci il tuo XML usando mezzi adeguati (una libreria XML di qualche tipo) questi caratteri vengono sostituiti in modo trasparente dalle loro controparti con escape XML e nessun parser si lamenterà.

Altri suggerimenti

La risposta è che non lo fai.

Il creatore del contenuto XML dovrebbe inserirli nelle sezioni CDATA.

Se estrai " Smith & amp; & Sons quot; dal database, dovrebbe essere evitato quando inserito nel tuo XML

es. quanto sopra diventerà 'Smith & amp; amp; Sons'

Allo stesso modo per gli altri personaggi sopra.

Il modo in cui ciò accade dipende dalla modalità di creazione del contenuto XML. Se si utilizza un'API come DOM, ciò dovrebbe avvenire automaticamente. Se stai assemblando manualmente il tuo XML, devi preoccuparti di questo (e di altri problemi come la codifica dei caratteri - il che significa che utilizzare un'API è l'opzione preferibile qui).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top