E 'illegale avere dichiarazioni di namespace non utilizzati in un documento XML?
Domanda
Per esempio, è il seguente documento XML ritenuto valido come per il W3C XML 1.0 raccomandazione? Si noti che lo spazio dei nomi 'futuro' non viene fatto riferimento in qualsiasi parte del documento,.
Anche se questo non può essere considerato un buon stile, la mia convinzione è che il documento è ancora valido a prescindere dal namespace inutilizzato. Qualcuno può confermare o smentire questa ipotesi?
Grazie, Matt
<?xml version="1.0" encoding="UTF-8" ?>
<root xmlns='http://foo.org/v1' xmlns:future='http://bar.org/v1'>
<child>1</child>
</root>
Soluzione
Il standard di non sembra indicare il contrario. Sezione 7, "conformità dei documenti" dà alcuni requisiti per richiamare un documento "namespace-ben formato" e "namespace-valida", ma nulla dice che non si può avere una dichiarazione di namespace non utilizzato.
Nella sezione 3, viene dato un esempio, che contiene un dominio inutilizzato:
<x xmlns:edi='http://ecommerce.example.org/schema'>
<!-- the "edi" prefix is bound to http://ecommerce.example.org/schema
for the "x" element and contents -->
</x>
Altri suggerimenti
No, non è illegale avere dichiarazioni di namespace non utilizzati in un documento XML.
Il W3C ha in realtà un servizio validator . Ciò conferma con due avvertimenti, la codifica e la mancanza di un doctype.
Mentre la maggior parte degli strumenti di pulizia rimuoverà gli spazi dei nomi non utilizzati non ricordo nulla su specifiche XML dicendo che è illegale per tenerli. E io non so di qualsiasi parser XML, che non accetta tale documento (e c'è un sacco di tali documenti galleggianti intorno).