Domanda

Una volta ho avuto un doctype valido e XML valido. Ho messo l'ex sulla parte superiore di quest'ultimo, cntrl-s'd ed ecco: tutto era come tutti dovrebbero essere. Oggi ho uno schema valido (costruito su misura per il mio XML ancora valida). Ho fatto del mio stesso approccio vero e provato -. Ma purtroppo, senza successo

ricevo diversi errori con ogni validatore diverso uso, e ancora nuovi errori da browser invio a (ma questo ha un senso). Quindi io non sono sicuro che dovrei dare di essere più utile. Validome dice:

  

Non riesci a trovare la dichiarazione di 'xs: schema' elemento.

e

  

Il codice nel documento successivo all'elemento principale deve essere ben formato.

(ma non è!)

Se sarebbe utile avere l'XML e lo schema, si prega di non esitate a chiedere , ho solo pensato che, dal momento che sono entrambi validi W3 e lunga, vorrei provare lasciando fuori All'inizio. Tutto quello che sto facendo è mettere lo schema sopra l'XML e l'invio attraverso il validatore / browser.

Grazie!

È stato utile?

Soluzione

@Nona Uno schema è un documento ben formato e così è l'istanza. Se, tuttavia, li concatenare il risultato non è più ben formato.

Se quello che hai è:

<xs:schema ...>...</xs:schema>
<myxml ...>...</myxml>

questo non è ben formato (nessun singolo elemento radice)

Il motivo per cui l'approccio DTD è diverso è che il sottoinsieme interno è specificamente consentito anteporre all'elemento radice. Quindi:

<DOCTYPE myxml [
... my DTD ...
]>
<myxml ...>...</myxml>

è ben formata.

Purtroppo non è del tutto banale per associare uno schema con un'istanza. Potrebbe essere necessario osservare xsi:schema-location.

Aggiorna Purtroppo la risposta dipende dal framework software che si usa. Per quanto ne sappia non c'è modo di confezionare un documento e uno schema tale che qualsiasi software accetterà e tentare di convalidare. Questo è il motivo per cui gli schemi sono molto più sforzo che DTD.

Ecco un semplice sito dove è possibile presentare i due documenti e di prova.

Tutto ciò al di là che può avere bisogno di una conoscenza del software. Ci saranno diversi approcci a seconda se si utilizza Oracle, Microsoft, ecc Questo può essere fatto chiamando i metodi per caricare il documento, caricare lo schema e poi confermare, o impostazione delle proprietà (come può essere fatto in Xerces).

La risposta può dipendere dal motivo per cui si sta facendo questo. Se si invia i documenti al proprietario dello schema allora si probbaly avere un sistema di validazione. Se si deve valiadte contro lo schema di qualcun altro allora si avrà bisogno per ottenere il software schemavalidation ed eseguire questo. Sei su MS o Unix / Java?

altri Aggiorna Suggerisci Qual è il modo migliore per convalidare un file XML con un file XSD? Come si suol dire non esiste un approccio estremamente semplice.

Altri suggerimenti

Solo un salto nel buio, ma non si dispone il prefisso namespace XML Schema dichiarato l'elemento radice? E 'xmlns: xs = "http://www.w3.org/2001/XMLSchema". Se un prefisso dello spazio dei nomi non è legata a un nome dello spazio dei nomi, quindi il documento non è valido.

A rischio di affermare l'ovvio, si potrebbe prendere in considerazione ragioni per le quali la dichiarazione di xs elementi: schema non può essere trovata dal validatore.

Il secondo errore suggerisce che v'è una parentesi angolare mancanti qualche parte, o che vi sono alcuni elementi che non sono nidificati correttamente.

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