O Mozilla tem amplo suporte ao XML. Várias Recomendações World Wide Web Consortium (W3C) e esboços de especificações da família XML são suportados, assim como outras tecnologias relacionadas.
Esta página está desatualizada. Por favor ajude atualizando-a com informações atuais.
Recomendações suportadas pelo núcleo XML W3C
O núcleo do suporte XML inclui analizar o XML sem a validação (nós utilizamos o Expat parser), indicando o XML com CSS, manipulando documentos XML com scripts via DOM, associando estilos com documentos XML, e namespaces em XML. O núcleo de suporte é muito bom para poucos bugs.
DTDs e outras Entidades Externas
O Mozilla não carrega entidades externas da web.
Ele pode carregar as entidades externas cujo o identificador do sistema usa o protocolo chrome
. Esta característica é principalmente usada para localizar diferentes idiomas (as strings da interface de usuário são armazenadas em arquivos DTD externos). Uma outra exceção é uma entidade cujo o identificador do sistema seja um path relativo, e a declaração do XML indica que o documento nao é autônomo(padrão), em cada caso, o Mozilla tentará procurar a entidade sob o diretório <tt><bin>/res/dtd</tt>.
O Mozilla pode também gerar uma exceção com documentos XHTML, veja abaixo.
Ele tentará ler um subconjunto DTD interno, ou externo como explicado acima, e tentará usar essa informação para reconhecer o ID do tipo do atributo, valores dos atributos padrão e entidades gerais.
Outras Notas
Muito do Document Object Model (DOM, W3C) aplica-se para XML. Do mesmo modo, a folhas de estilos (CSS) (CSS, W3C) podem ser usado para documentos XML.
O código para a maioria do núcleo XML pode ser encontrado nos seguintes diretórios no servidor Mozilla CVS: content/xml/, parser/expat/ e parser/htmlparser.
O grupo de notícias para discução de XML no Mozilla depende um pouco, da natureza da pergunta. Por exemplo, questões relacionadas a DOM pode ser discutida provavelmente em mozilla.dev.tech.dom newsgroup, enquanto os estilo devem ser discutidos em mozilla.dev.tech.css e assim por diante. Para ter todas os grupos de notícias em XML é mozilla.dev.tech.xml.
Especificações ou tecnologia | Status e/ou informãções adicionais |
XML | W3C Recommendation |
Namespaces em XML | W3C Recommendation |
Associando Estilos Com Documentos XML | W3C Recommendation |
Estilizando documentos XML com CSS | |
Manipulação de Documentos XML com scripts atrávez de DOM |
Otras Recomendações Suportadadas pela W3C para XML
Especificações ou Tecnologia | Documentação |
XHTML | W3C |
XML Base (somente links, não use para :visited etc. propriedades CSS)
| W3C |
XLink (somentes simples XLinks) | W3C |
FIXptr | W3C "proposal" |
XPointer Framework | W3C |
XPointer element()
| W3C |
XPointer xmlns()
| W3C |
XPointer fixptr()
| Somente um envoltório FIXptr |
XPointer xpath1()
| Internet-Draft |
document.load() , document.async
| Part do DOM Level 3 Load & Save módulo, um esboço W3C |
XHTML
Nós temos um suporte XHTML razoável, muitas coisas devem ser trabalhadas. Tratamos os arquivos XHTML diferentemente, dependendo do mime type (ou o sufixo do arquivo, caso ele tenha sido carregado localmente). Arquivos que são do caminho do código HTML não são checados para ver se estão bem formatados. Você verá também que nem todas as características do XHTML são suportadas quando você exercita o caminho do código HTML.
MIME Type | Extensão do Arquivo | Caminho do Código |
text/xml application/xml application/xhtml+xml | xml xht xhtml | XML |
text/html | html htm | HTML |
O documento inteiro não precisa ser um XHTML. Você pode usar elementos XHTML dentro de um documento XML arbitrário por usar namespace XHTML. Veja a sessão {{template.Anch("Testing and QA")}} por exemplo. O namespace XHTML correto é https://www.w3.org/1999/xhtml
Note que as entidades XHTML, como ä
, Trabalham somente em conformidade com documentos XHTML que tenham um Formal Public Identifier (ou em outras palavras, uma sessão DOCTYPE com um identificador PUBLIC). Entidades XHTML não trabalham com documentos XML arbitrátios, mesmo se o namespace XHTML está sendo usado. Os identificadores públicos que são reconhecidos são:
-//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
O suporte a XML Linking inclui XML Base (usado somente quando você move o cursor sobre um link ou clica em um link) e simples XLinks. Você pode colocar qualquer elemento XML em um XLink usando o XLink namespace https://www.w3.org/1999/xlink
. Você pode também usar os elementos de linking do XHTML namespace. Veja a sessão {{template.Anch("Testing and QA")}} para amostras.
Para pointing em recursos nos documentos XML, Mozilla também suporta FIXptr, uma versão simplificada e não-compatível do XPointer. Em adição ao uso do FIXptr em links, é possível usá-lo a partir de scripts. Veja a interface proprietária {{template.Source("dom/public/idl/core/nsIDOMXMLDocument.idl")}}. Há um caso de exemplo para FIXptr links e um exemplo de scripting.
Desde 1.4 alpha, Mozilla também suporta XPointer Framework, XPointer element()
scheme, XPointer xmlns()
scheme, XPointer fixptr()
scheme e XPointer xpath1()
scheme. O processador XPointer é extensível e é fácil de implementar suporte para outros schemes - dê uma olhada em {{wiki.template('Named-source', [ "content/xml/document/public/nsIXPointer.idl", "API" ])}}. O xpath1()
scheme foi {{wiki.template('Named-source', [ "content/xslt/src/xpath/nsXPath1Scheme.cpp", "implementado usando este mecanismo extensível" ])}}. Há também uma {{wiki.template('Named-source', [ "dom/public/idl/core/nsIDOMXMLDocument.idl", "API proprietária de <i>scripts</i>" ])}} para o processador XPointer. Há um caso de exemplo para XPointers que você também pode estudar.
Por último, há uma preferência que você talvez queira testar (especialmente útil com FIXptr) que selecionará a área de alvo do link quando você atravessá-la. Não ná interface de usuário para configurar esta preferência ainda, então você precisará editar o arquivo de preferências manualmente. Adicione esta linha:
pref("layout.selectanchor", true);
Métodos de carregamento e salvamento do DOM
document.load()
é uma parte de uma antiga versão do DOM Level 3 Load & Save module do W3C. O Mozilla atualmente implementa somente o método load()
e a propriedade async
. Desde 1.4 alpha é possível carregar documentos sincronicamente, antes só era possível de maneira assíncrona. {{wiki.template('Named-source', [ "content/xml/tests/load/", "Veja a amostra de carregamento" ])}} no diretório de textes XML. (Carregando o arquivo load.html da página LXR gerada não trabalhará, pois o LXR converterá o arquivo test.xml em HTML e servirá como HTML. Para testar esta funcionalidade, crie os arquivos no seu disco local ou em um servidor web.)
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 | https://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 ({{template.Bug(32832)}}), XInclude ({{template.Bug(201754)}}), XML Catalogs ({{template.Bug(98413)}}), XForms ({{template.Bug(97806)}}; work being done on implementing this as an extension), validating parser ({{template.Bug(196355)}}), XML Schemas, and incremental layout of XML document ({{template.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 {{template.Source("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.
Categorias
Interwiki Language Links
{{ wiki.languages( { "en": "en/XML_in_Mozilla", "it": "it/XML_in_Mozilla", "es": "es/XML_en_Mozilla", "fr": "fr/XML_dans_Mozilla", "ja": "ja/XML_in_Mozilla" } ) }}