Pergunta

Eu tenho um programa que usa XSL-FO (org.apache.fop.apps.Driver) para gerar um PDF imprimir a partir de um arquivo XML.

Eu estou trabalhando em folhas de estilo (XSL) e eu estou tentando fazer a depuração mais fácil. Eu tenho o XML e o arquivo XSL, agora eu só quero o meu editor para me mostrar o PDF gerado como eu estou trabalhando no arquivo XSL.

Eu tentei vários editores e eles deram erros que o programa não parecem ter um problema com.

parece que o problema é que os espera editor para ver:

<ATTRVALUE attribute_id="92" attrname="Date Required" attr_value="" />

enquanto o XML real o programa gera é

<ATTRVALUE attribute_id="92" attrname="Date Required" attr_value />

Como você pode ver o attr_value vazia é claramente faltando o = "" - há uma maneira para mim fazer o editor menos rigoroso? Por isso, pode gerar o PDF como o programa que eu tenho faz?

Foi útil?

Solução

<ATTRVALUE attribute_id="92" attrname="Date Required" attr_value />

Essa linha é inválido como foi mencionado antes. O programa que pensa que está tudo bem está provavelmente usando o seu próprio parser XML personalizado que irá simplesmente ignorar esses atributos inválidos. Isso me faz ter dúvidas sobre as qualidades de programação das pessoas que criaram esse programa. Ele apenas parece-me que eles estão apenas escrevendo este XML como texto em vez através de um mecanismo XML-DOM. Ainda assim, isso deve estar bem mas, infelizmente, seu código tem um bug.

A maioria -Se não for All XML editores, analisadores e transformadores irá validar o XML antes de ser processado. Então, infelizmente, não há nenhuma boa solução para resolver este problema de dentro do arquivo XSLT. Usando um RegEx, você pode remover os atributos inválidos ou torná-las válidas anexando = "" para eles, mas não há nenhuma maneira de fazer isso antes do XSLT irá validar o XML.

Para resolver isso, o programa precisa ser alterado para gerar XML válido. Porque agora, isso poderia ser considerado um erro muito grave. (A menos que o programa só usa esse XML falso para fins internos.)

Outras dicas

O XML com o attr_value e não = é inválido W3C XML especificação e assim todas as ferramentas XML deve reclamar. Que ferramenta você está usando?

Ok, eu só usou a expressão regular Localizar e substituir todos os nomes de atributos, se eles não terminam com a = "", em seguida, acrescentar que, agora tudo parece estar ok ... coxo, mas ok é para o meu necessidades no momento

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top