xml, html ou xhtml no : Qual é a melhor escolha?
Pergunta
Por razões históricas, temos uma mistura de
<xsl:output method="xml">
e
<xsl:output method="html">
e
<xsl:output method="xhtml">
dentro de um incluem-hierarquia de arquivos XSL. Agora queremos refatorar para que todos os arquivos XSL usar o mesmo método de saída.
No final queremos produzir XHTML-output então eu suponho que este último seria a melhor escolha.
Mas quais são as diferenças entre esses três saída-métodos e que você usa para que tipo de solução?
Editar: Eu estou usando XSLT 2.0
Solução 2
Eu encontrei a resposta lendo a especificação XSLT 2.0 ( XSLT 2,0 e 1,0 Xquery serialização ).
Dada uma instância vazia de um XHTML elemento cujo modelo de conteúdo não é VAZIO (por exemplo, um vazio ou título parágrafo) o serializador não deve usar a forma minimizada. Ou seja, ele deve
<p></p>
saída e não<p />
.Dado um elemento XHTML cujo conteúdo modelo está vazio, o mosto serializer usar a sintaxe tag minimizado, para
<br />
exemplo, como a alternativa sintaxe<br></br>
permitido por XML dá resultados incertos em muitos agentes de utilizador existentes. o serializer Deve incluir um espaço antes do à direita />, v.g.<br />
,<hr />
e<img src="karen.jpg" alt="Karen" />
.O serializador não deve usar a entidade
'
referência que, embora legal em XML e, portanto, em XHTML, não está definido no HTML e não é reconhecido por todos os agentes de usuário HTML.A DEVE namespace saída serializer declarações de uma forma que é consistente com os requisitos de o XHTML DTD se isso é possível. o XHTML 1.0 DTDs exigir que a declaração xmlns = "http://www.w3.org/1999/xhtml" a aparecer no elemento html, e apenas no elemento html. o namespace saída deve serializer declarações que são consistentes com os nós namespace apresentar no resultar árvore, mas deve evitar saída namespace redundante declarações sobre os elementos de onde o DTD os faria inválido.
Isso significa que a resposta está usando <xsl:output method="xhtml">
.
Outras dicas
HTML serializará como HTML, de modo que a saída pode não ser XML bem formado. Se você só está enviando para navegadores e não se preocupam com a possibilidade de analisar como XML, em seguida, que o trabalho de maio para você.
XML serializará como XML, então a saída será bem formado, mas você pode funcionar em alguns problemas com navegadores usando a saída. Pequenas coisas, como <script />
e <div />
elementos auto fechamento. Para evitar esse problema, você teria que jogar jogos, como a adição de comentários dentro do elemento (por exemplo <script src="someJSFile.js"><!--don't close my script tag --></script>
)
Se você tem um motor de XSLT 2.0 e querem bem formado saída HTML sem a dor de cabeça de se preocupar com a forma como alguns elementos são serializados, em seguida, usar XHTML.
Tanto quanto eu sei, não há nenhuma method:xhtml
à directiva xsl:output
em XSLT 1.0.
wc3schools concordar com isso.
Como XHTML é um dialeto XML, que é o que eu usaria.
Se, no entanto você está usando XSLT 2.0 , poder também usar xhtml
, já que é o que você está a saída.