XML in Mozilla

 

Questa pagina è in fase di traduzione: contribuisci anche tu completando le parti mancanti. Il testo da tradurre potrebbe essere nascosto nella pagina: vai in modifica per visualizzarlo

Mozilla gestisce ampiamente XML. Sono gestite diverse Raccomandazioni e bozze del World Wide Web Consortium (W3C) per la famiglia XML, così come altre tecnologie relative.

Supporto principale alle Raccomandazioni W3C per l'XML

Il supporto principale ad XML include: il parsing senza validazione (utilizzando Expat parser), la visualizzazione di XML con CSS, la manipolazione di documenti XML con script che utilizzano la tecnologia DOM, l'associazione dei fogli di stile ai documenti XML, e i namespace. Il supporto principale è buono, ma ha ancora qualche bug.

DTD e altre entità esterne

Mozilla non utilizza entità esterne prese dalla rete.

Mozilla può caricare entità esterne solamente se l'identificatore di sistema utilizza il protocollo chrome. Questa caratteristica viene usata principalmente per regionalizzare Mozilla in lingue diverse dall'Inglese (le stringhe UI vengono mantenute in file DTD esterni). Mozilla carica entità esterne in un altro caso: se l'identificatore di sistema ha un percorso relativo, e se la dichiarazione XML definisce il documento come non autonomo (standalone), che è l'attributo di default. In questo caso Mozilla proverà a cercare l'entità nella cartella <bin>/res/dtd.

Mozilla può fare eccezioni sulle entità esterne anche per documenti XHTML. Si veda sotto.

Mozilla leggerà i subset interni (DTD), e in casi speciali anche le DTD esterne (come è stato spiegato sopra) e utilizzarà queste informazioni per riconoscere gli attributi di tipo ID, i valori di default per gli attributi e le entità generali.

Altre note

Gran parte del Document Object Model (DOM, Raccomandazioni e bozze W3C) si applica ad XML. Per esempio il linguaggio Cascading Style Sheets (CSS, Raccomandazioni e bozze W3C) può essere utilizzato per formattare documenti XML.

Il codice per il supporto principale ad XML può essere trovato nelle seguenti cartelle presenti sul server CVS di Mozilla: content/xml/, parser/expat/, e parser/htmlparser/.

La scelta del newsgroup dove discutere (in Inglese) sul supporto di XML in Mozilla, dipende dalla natura della domanda. Per esempio, le domande su DOM dovrebbero essere discusse sul newsgroup mozilla.dev.tech.dom, mentre le discussioni sullo stile dovrebbero essere svolte su mozilla.dev.tech.css e così via. Le discussioni di carattere generale su XML si trovano su mozilla.dev.tech.xml.

Specificazione o tecnologia Status e/o maggiore documentazione
XML W3C Recommendation
Namespace in XML W3C Recommendation
Associare i fogli di stile ai documenti XML W3C Recommendation
Formattare documenti XML con CSS  
Manipolare documenti XML con script che usano DOM  
Convertire un albero DOM di un foglio XML in un albero di oggetti Javascript (JXON)  

Altre Raccomandazioni XML del W3C gestite

Specificazione o Technologia Documentazione
XHTML W3C Recommendation
XML Base (solo per collegamenti, non per :visited ecc. Proprietà CSS) W3C Recommendation
XLink (solo XLinks semplici) W3C Recommendation
FIXptr W3C "proposal"
XPointer Framework W3C Recommendation
XPointer element() scheme W3C Recommendation
XPointer xmlns() scheme W3C Recommendation
XPointer fixptr() scheme Questo schema è solo un wrapper per FIXptr
XPointer xpath1() scheme Internet-Draft
document.load(), document.async Part of DOM Level 3 Load & Save module, a W3C Working Draft

XHTML

XHTML è ampiamente supportato, la maggior parte delle cose dovrebbero funzionare. I documenti XHTML vengo trattati in maniera differente a seconda del mime type (o a seconda dei suffissi dei file se vengono caricati da dischi locali). Per i file che passano attraverso il code path HTML non si controlla se sono ben formati. E' possibile inoltre notare che non tutte le caratteristiche di XHTML vengono supportate se passano con il code path HTML.

MIME Type Suffisso del file Code Path
text/xml
application/xml
application/xhtml+xml
xml
xht
xhtml
XML
text/html html
htm
HTML

L'intero documento deve essere XHTML. Possono essere utilizzati elementi XHTML all'interno di documenti XML specificando il namespace XHTML. Per degli esempi si veda la sezione Testing and QA. Il namespace corretto per XHTML è http://www.w3.org/1999/xhtml

Si noti che le entità XHTML, come &auml;, funzionano solo in conformità ai documenti XHTML che hanno un XHTML Formal Public Identifier valido (cioè, in parole povere, una sezione DOCTYPE con un identificatore PUBLIC). Le entità XHTML non funzioneranno in documenti XML, neanche se viene specificato il namespace XHTML. Gli identificatori pubblici riconosciuti sono:

-//W3C//DTD XHTML 1.0 Transitional//EN
-//W3C//DTD XHTML 1.1//EN
-//W3C//DTD XHTML 1.0 Strict//EN
-//W3C//DTD XHTML 1.0 Frameset//EN
-//W3C//DTD XHTML Basic 1.0//EN
-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN
-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN
-//W3C//DTD SVG 20001102//EN
-//WAPFORUM//DTD XHTML Mobile 1.0//EN

XML Linking e Pointing

Il supporto per XML Linking include XML Base (utilizzato solamente quando il mouse è posizionato sopra un collegamente o quando viene cliccato)) e semplici XLinks. Si può traformare qualsiasi elemento XML in un XLink utilizzando il namespace XLink http://www.w3.org/1999/xlink. Si possono anche utilizzare gli elementi di collegamento del namespace XHTML. Per degli esempi si veda la sezione Testing and QA.

Per il puntamento a risorse all'interno di documenti XML, Mozilla supporta anche FIXptr, una versione semplificata e non compatibile di XPointer. Oltre a poter utilizzare FIXptr nei collegamenti, è posibile utilizzarlo negli script. Si veda l'interfaccia proprietaria dom/public/idl/core/nsIDOMXMLDocument.idl. E' possibile trovare un test per FIXptr links e un esempio di script.

A partire dalla versione 1.4alpha, Mozilla supporta anche XPointer Framework, XPointer element() scheme, XPointer xmlns() scheme, XPointer fixptr() scheme e XPointer xpath1() scheme. Il processore XPointer è estensibile ed è semplice implentare supporto per altri schemi. Si veda l'API. L'xpath1() scheme è stato implementato utilizzando questo meccanismo estensibile. E' inoltre possibile trovare API proprietari per il processore XPointer. Inoltre si potrebbe considerare di visionare anche il

test per XPointers.

Infine, è disponibile uno script predefinito (molto utile con FIXptr) che seleziona il target del collegamento passandoci sopra con il mouse. Non c'è ancora un UI per impostare questo script predefinito, quindi sarà necessario modificare manualmente il file delle preferenze. Si aggiunga questa linea.

pref("layout.selectanchor", true);

DOM Load and Save Methods

document.load() is a part of an old version of the W3C DOM Level 3 Load & Save module. Mozilla currently implements only the load() method and the async property. Since 1.4alpha it has been possible to load documents synchronously, before that it was only asynchronous. See the load sample in the XML tests directory. (Loading the load.html file from the LXR generated page will not work because LXR will munge the test.xml file into HTML and serve it as HTML. To test this functionality, create the files on your local disk or on a webserver.)

Outside Supported XML W3C Recommendations

Specification or Technology Documentation Mozilla Project
XSLT W3C Recommendation XSLT
XPath W3C Recommendation XSLT
XMLHttpRequest W3C Draft XML Extras
DOMParser and XMLSerializer Mozilla XML Extras
SAX http://www.saxproject.org/  
SOAP W3C Note Web Services
XML-RPC UserLand Software XML-RPC
RDF W3C Recommendations RDF
SVG W3C Proposed Recommendation SVG
MathML W3C Recommendation MathML
P3P W3C Recommendation P3P
WSDL W3C Note Web Services
XBL Mozilla's XBL reference  
XUL Mozilla's XUL reference  

Roadmap

Next big tasks would include support for XPointer xpointer() scheme (bug 32832), XInclude, XML Catalogs (bug 98413), XForms (bug 97806; work being done on implementing this as an extension), validating parser (bug 196355), XML Schemas, and incremental layout of XML document (bug 18333).

To fully implement XLink, we need something called a link manager. See some initial design documents.

Testing and QA

We have a lot of testcases linked to from the browser standards compliance QA page.

Most of the core XML test documents on the CVS server are located in content/xml/tests. We also have a couple online: the books demo and the IRS table of contents demo. Both of them demonstrate XML, Associating stylesheets with XML, displaying XML with CSS, Namespaces in XML, XHTML, simple XLinks, and manipulation of XML with scripts via DOM.

There is an XML component in Bugzilla.

We also have the "xhtml" keyword for XHTML bugs (these tend to be scattered across components).

How can I help?

If you can code, look for helpwanted keyword in XML bugs. We don't use that always, so if you want to avoid doing duplicate work you could start working on bugs that have Future milestone, or otherwise have a milestone that is set way into the future.

You can always test our XML support. We'd really like to get tests that can be run automatically (this would require knowledge of web development; document.load() and/or XML Extras might be needed), but probably most of the bugs we get have just been found by normal people trying to do something that works in some other browser and does not work in Mozilla.

Tag del documento e collaboratori

 Hanno collaborato alla realizzazione di questa pagina: fusionchess, Leofiore, Izee
 Ultima modifica di: fusionchess,