Esta página descreve limitações que podem ser encontradas ao depurar
XSLT e os métodos sugeridos para contornar essas limitações.
Consulte também o leia-me do
produto, que pode conter limitações adicionais para esse depurador.
Geral
- As visualizações Contexto do XSLT e Saída de Transformação do
XSL podem não aparecer automaticamente quando a sessão de depuração
for ativada fora da perspectiva de depuração: Ativar uma sessão de depuração de transformação do XSL quando
não estiver na perspectiva de depuração pode fazer com que as visualizações Contexto do XSLT e
Saída de Transformação do XSL Transformation Output não sejam exibidas. As visualizações podem ser abertas manualmente escolhendo Janela > Mostrar Visualização > Outro na barra de menus do workbench. Na caixa
de diálogo Mostrar Visualização, expanda o nó Depuração
e selecione a visualização que você deseja abrir. Como alternativa, você pode corrigir este problema
finalizando todas as ativações de depuração e reativando o aplicativo enquanto estiver na
perspectiva de depuração. Para evitar que este problema ocorra novamente,
assegure-se de que esteja na perspectiva de depuração ao ativar uma sessão de depuração.
- Conflito com o depurador do Visual Basic Script: Os pontos de interrupção XSLT não
podem ser colocados em arquivos com uma extensão .vbs como se houvesse um conflito
com o depurador do Microsoft Visual Basic Script.
- Expressões de observação podem mostrar resultados incorretos no Linux: Para evitar
esse problema, mantenha um mínimo de expressões de observação e desative-as no
percurso. Para ver o valor mais recente, reative as expressões de observação depois de concluir
o percurso. Como alternativa, utilize expressões de inspeção em vez de expressões de observação
se precisar avaliar a expressão apenas uma vez.
- Realce do nó: Se o percurso de nó estiver ativado, o arquivo de origem XSL
na visualização do editor e a origem XSL carregada pelo transformador deverão ser idênticos
byte a byte, ou o realce do nó não funcionará corretamente.
- A atribuição do local de origem deve ser definida como verdadeira: Isso fornece
um SourceLocator para que o local de origem de nós do documento de
entrada (XML) possa ser determinado (o local de origem está sempre ativado para um
documento XSL). A atribuição do local de origem está ativada por padrão. Para obter
informações adicionais, vá para http://xml.apache.org/xalan-j/features.html#source_location.
- Processadores XSLT alternativos ou analisadores XML não podem ser especificados no aplicativo Java: O depurador
tem uma dependência sobre Xerces e Xalan. Você não pode definir explicitamente que o processador seja
Xalan (substituindo a propriedade do sistema TransformerFactory)
- isso faria com que a depuração fosse desligada.
- Você não pode serializar/desserializar/clonar componentes Xalan: O estado de depuração
e as referências talvez não sejam corretamente resolvidas na desserialização. Talvez os campos
não sejam corretamente inicializados quando ocorrer a clonagem. Ou então, há erros
Xalan existentes na serialização/desserialização/clonagem.
- Utilizando listeners de rastreio customizados: O uso de listener de rastreio customizado
com o depurador pode causar resultados inesperados.
- Pontos de interrupção: Os pontos de interrupção na folha de estilo XSLT são suportados apenas
dentro das regras de gabarito. Por exemplo, pontos de interrupção em variáveis globais não são
suportados.
- Comprimento do arquivo gerado: Os arquivos gerados com mais de 2147483647
bytes não são suportados.
- Links e imagens da visualização do navegador: Os links e as imagens na visualização
do navegador da visualização Saída de Transformação funcionarão apenas se você especificar
um arquivo de saída e o caminho desse arquivo de saída permitir que os links e as imagens
sejam localizados. Um arquivo de saída pode ser especificado na configuração de ativação.
- A saída XML no navegador: A saída XML não será exibida corretamente no navegador
até que haja uma tag de fechamento respectiva para todas as tags do documento. Essa é uma
limitação do navegador.
- Configurando pontos de interrupção em documentos XML de entrada: Se você definir um
ponto de interrupção no documento XML de entrada para uma transformação do XSL, o depurador parará
quando esse nó estiver no nó de contexto atual, mas apenas se o ponto de interrupção estiver
definido na linha que contém o ">" de fechamento da tag de abertura do elemento ou da tag de
fechamento do elemento.
- Visualização Contexto do XSLT: Se a lista de nós estiver classificada, a visualização Contexto
XSLT mostrará a lista de nós na ordem do documento em vez de na ordem de
classificação.
Limitações de Vários Idiomas
As limitações a seguir se aplicam apenas
quando você avança para uma folha de estilo a partir de um aplicativo Java:
- Eliminação do quadro e substituição do código ativo: Não utilize os recursos de eliminação do quadro
e de substituição do código ativo enquanto estiver depurando o XSLT chamado a partir de Java.
- O recurso incremental deve estar desativado: O recurso incremental deve estar
desativado. Quando estiver ativado, o DTM (a representação interna da entrada) poderá
ser construída de forma incremental, em vez de aguardar até que a entrada inteira seja analisada.
Esse recurso está desativado por padrão. Para obter informações adicionais, vá para http://xml.apache.org/xalan-j/features.html#incremental.
- Suporte limitado para URIResolvers fornecidos pelo usuário na origem gerada: Ao
utilizar um determinador de URI para analisar importações, inclusões e chamadas de documentos,
a origem do documento talvez não seja visível no depurador. A transformação, no entanto,
continuará.
- As referências de entidades externas na origem gerada não são suportadas: Se o documento
XML de origem contiver um DOCTYPE in-line com uma declaração de entidade externa em um cenário de
origem gerada (SAX ou DOM), o uso subseqüente da entidade externa poderá causar
resultados incorretos.
- Transformações de depuração que utilizam JAXP com objetos de origem DOMSource: Ao
depurar uma transformação do XSL que utiliza JAXP com um objeto de origem que seja um DOMSource,
o SystemId deverá ser definido no DOMSource.
Limitações gerais de depuração de idiomas mistos também podem ser aplicadas ao depurar Java que
chame uma folha de estilo ou folhas de estilo que chamam Java. Essas limitações podem ser encontradas no
Java e na
documentação de depuração de idiomas mistos.