E 'illegale avere dichiarazioni di namespace non utilizzati in un documento XML?

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

  •  13-09-2019
  •  | 
  •  

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>
È stato utile?

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).

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