XML no Mozilla

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 não é 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 Testing and QA por exemplo. O namespace XHTML correto é http://www.w3.org/1999/xhtml

Note que as entidades XHTML, como &auml;, 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 http://www.w3.org/1999/xlink. Você pode também usar os elementos de linking do XHTML namespace. Veja a sessão 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 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, esquema XPointer element(), esquema XPointer xmlns(), esquema XPointer fixptr() e esquema XPointer xpath1(). O processador XPointer é extensível e é fácil de implementar suporte para outros esquemas - dê uma olhada em API. O esquema xpath1() foi implementado usando este mecanismo extensível. Há também uma 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. 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.)

Recomendações XML externas ao suporte W3C

Especificação ou Tecnologia Documentação Projeto Mozilla
XSLT Recomendação W3C XSLT
XPath Recomendação W3C XSLT
XMLHttpRequest Esboços W3C Extras XML
DOMParser e XMLSerializer Mozilla Extras XML
SAX http://www.saxproject.org/
SOAP Nota W3C Serviços Web
XML-RPC UserLand Software XML-RPC
RDF Recomendações W3C RDF
SVG Recomendações Propostas W3C SVG
MathML Recomendações W3C MathML
P3P Recomendações W3C P3P
WSDL Nota W3C Serviços Web
XBL Referência XBL do Mozilla
XUL Referência XUL do Mozilla

Roadmap

As próximas grandes tarefas incluem o suporte para o esquema XPointer xpointer() (bug 32832), XInclude (bug 201754), XML Catalogs (bug 98413), XForms (bug 97806; o trabalho está sendo feito na implementação desde como extensão), análise de validação (bug 196355),Esquemas XML, e incremento da disposição do documento XML (bug 18333).

Para a completa implementação do XLink, nós precisamos de um gerenciador de links. Veja alguns documentos de design iniciais.

Testes e Garantia de Qualidade

Nós temos muitos casos de teste linkados à página de garantia de qualidade dae conformidade de padrões de navegador.

A maioria dos principais documentos de teste XML no servidor CVS estão localizados em content/xml/tests. Nós temos também um par online: os livros demonstrações e a tabela de conteúdos de demonstração de IRS. Ambos demonstram XML, Associação de folhas de estilo ao XML, exibição de XML com CSS, Namespaces em XML, XLinks simples e manipulação do XML com scripts via DOM.

Há um componente XML em Bugzilla.

Nós também temos a palavra-chave "xhtml" para erros XHTML (estes tendem a ser dispersados através de componentes).

Como eu posso ajudar?

Se você pode programar, procure a palavra-chave helpwanted em erros XML. Nós não usamos isto sempre, então se você deseja evitar fazer trabalho duplicado você pode começar trabalhando em erros que tem futuros milestones, ou outro milestone que esteja definido bem para o futuro.

Você pode sempre testar nosso suporte XML. Nós realmente gostaríamos de pegar testes que podem rodar automaticamente (isto pode requerer conhecimento em desenvolvimento web; document.load() e/ou Extras XML poderão ser necessários), mas provavelmente a maioria dos erros que tenhamos acabado de encontrar são por pessoas normais tentando fazer alguma coisa que funcione em alguns navegadores e não funciona no Mozilla.

Categorias

Interwiki Language Links

Document Tags and Contributors

Contributors to this page: Verruckt, Victorino
Last updated by: Verruckt,