Come importare un file XSD

March 18

Se la maggior parte delle informazioni sullo schema ti serve è già contenuto all'interno di un altro file XSD, non c'è alcuna ragione per duplicare tutte queste informazioni in un altro file. In questo modo è una ricetta per il disastro, perché attraverso la diffusione di informazioni di schema XSD fuori in più file, si crea solo una situazione da incubo se il vostro schema XSD mai bisogno di essere modificato. Invece, si dovrebbe usare il "xsd: import" e "xsi: schemaLocation" tag nei documenti XSD per importare i file XSD in un altro altri documenti XSD che richiedono le stesse informazioni. Questo assicura che quando arriva il momento di aggiornare uno dei tuoi documenti, le modifiche si propagheranno verso tutti gli altri documenti automaticamente.

istruzione

1 Aprire il nuovo file XSD in un editor di testo. Per il tutorial, verrà utilizzato il seguente documento XSD molto semplice:

<? Xml version = "1.0"?>

<Xsd: schema xmlns: xsd = "http://www.w3.org/2001/XMLSchema">

&lt;xsd:element name="person">

& Lt; xsd: complexType>

& Lt; xsd: sequence>

& Lt; xsd: element name = "nome" type = "xsd: string" />

& Lt; xsd: element name = tipo "telefono" = "xsd: string" />

& Lt; xsd: element name = tipo "indirizzo" = "xsd: string" />

& Lt; / xsd: sequence>

& Lt; / xsd: complexType>

& Lt; / xsd: element>

</ Xsd: schema>

Come si può vedere questo XSD definisce la struttura di un database di persone, ciascuno con il proprio nome, numero di telefono e indirizzo. Tuttavia, alcuni dei dettagli di implementazione sono meno desiderabile: Sicuramente c'è una definizione di dati di meglio là fuori per i nomi, gli indirizzi ei numeri di telefono rispetto alla semplice stringa. Idealmente, il nostro documento XSD dovrebbe essere in grado di individuare, ovviamente non valido "numeri di telefono" come "12" o, peggio ancora, qualcosa di completamente priva di senso come "Non mi sento di dare il mio numero di telefono."

2 Aggiungere la seguente riga al file XSD, appena sotto la "xsd: schema" linea:

<Xsd: import namespace = "kevinwalkersNS" schemaLocation = "phoneNumber.xsd" />

<Xsd: import namespace = "kevinwalkersNS" schemaLocation = "address.xsd" />

<Xsd: import namespace = "kevinwalkersNS" schemaLocation = "englishNames.xsd" />

Ora, avete importato tre file XSD: quello che definisce un tipo di dati "phoneNumber", un altro per un "indirizzo" tipo di dati, e un terzo per un "englishNames" tipo di dati. Ognuno di loro è in uno spazio nome denominata "kevinwalkersNS", e questo impedisce conflitti con altri documenti che possono avere i nomi delle variabili simili al loro interno.

3 Modificare i tipi di variabili dei vostri elementi che utilizzano i documenti XSD importate di utilizzare lo schema contenuto all'interno. In questo caso, il "xsd: string" dovrebbe essere sostituito in questo modo:

&lt;xsd:element name="name" type="kevinwalkersNS:englishNames"/>

& Lt; xsd: element name = tipo "telefono" = "kevinwalkersNS: phoneNumber" />

& Lt; xsd: element name = tipo "indirizzo" = "kevinwalkersNS: indirizzo" />