Pergunta

Eu estou escrevendo básico de uma aplicação de processamento de texto e estou tentando resolver sobre um nativo "interno" formato, o que o meu código analisa a fim de tornar a tela.Eu gostaria que este XML para que eu possa, no futuro, basta escrever o XSLT para convertê-lo para o ODF ou XHTML ou o que seja.

Ao procurar por padrões existentes para usar, o único que parece promissor é o ODF.Mas que parece enorme exagero para o que eu preciso.Tudo que eu preciso é, as tags de parágrafo, selecção de tipo de letra, tamanho do tipo de letra & decoração...que é muito bonito.Ele me levaria muito tempo para implementar até mesmo um mínimo de ODF processador, e não tenho certeza se vale a pena o esforço.

Agora eu estou pensando em fazer o meu próprio formato XML, mas que não é realmente uma boa prática.Melhor usar um padrão, especialmente desde então eu provavelmente pode encontrar o XSLTs que eu poderia precisar no futuro já está escrito.

Ou devo apenas morder a bala e implementar o ODF?

EDITAR:Em relação a Resposta

Eu sabia sobre o XSL-FO antes, mas devido ao peso da spec realmente não tinha consdiered-lo.Mas você está certo, um subconjunto me daria tudo que eu preciso para trabalhar com e espaço para crescer.Muito obrigado a lembrança.

Além disso, incluindo uma biblioteca de renderização como FOP ou RenderX, recebo PDF geração de graça.Não é mau...

Foi útil?

Solução

Como você tem certeza sobre a necessidade de representar a apresentação do lado das coisas, pode valer a pena olhar para o XSL-FO Recomendação do W3C.Este é um full-blown linguagem de descrição de página e o (profundamente fora de moda) outra metade dos mais conhecidos XSLT.

Claramente, a coisa toda é qualquer coisa, mas "lightwight", mas se você simplesmente incorporou uma subconjunto muito limitado, o que poderia até mesmo ser apenas (para combinar com a sua especificação de "marcas de parágrafo, selecção de tipo de letra, tamanho do tipo de letra & decoração) fo:block e o comum de propriedades do tipo de letra, algo assim:

<yourcontainer xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <fo:block font-family="Arial, sans-serif" font-weight="bold"
        font-size="16pt">Example Heading</fo:block>
    <fo:block font-family="Times, serif"
        font-size="12pt">Paragraph text here etc etc...</fo:block>
</yourcontainer>

Este seria, talvez, tenha algumas vantagens sobre o que acabou rolando a sua própria.Não há uma especificação aberta para trabalhar, e tudo o que isso implica.Ele reutiliza propriedades CSS como atributos XML (de maneira semelhante à SVG), muitos dos detalhes de formatação vai parecer um pouco familiar.Você teria um caminho de atualização se, mais tarde, decidiu que, digamos, inteligente paginação foi uma característica deve-ter - incluindo mais seções de especificação de como eles se tornam relevantes para a sua aplicação.

Há uma outra coisa que você pode obter a partir de investigar XSL-FO - vendo como é mesmo apenas fazendo-parágrafos-e-fontes podem ser terrivelmente complicado.Tentando fazer o layout de texto e quebra de linha 'Caminho Certo' para vários idiomas diferentes e casos de uso parece muito assustador para mim.

Outras dicas

Se é apenas para processamento de texto, então talvez DocBook pode ser um pouco mais leve do que o ODF?

No entanto, o wiki estados de entrada:

DocBook é semântica, linguagem de marcação para a documentação técnica.Ele foi originalmente concebido para a escrita de documentos técnicos relacionados a hardware e software de computador, mas ele pode ser usado para qualquer outro tipo de documentação.

Então, ele pode não ser tão adequado para um propósito geral de um processador de texto?

A vantagem de usar o DocBook seria o fato de que um número de DocBook -> outros conversores de formato deve estar disponível?Espero que isso ajude.

Eu gosto DocBook, mas ele realmente não se encaixam.Ele se esforça para ser a apresentação independente, a intenção é que você gostaria de usá-lo para torná-lo para um formato de apresentação.

Em um processador de texto, o utilizador está a editar apresentação junto com o conteúdo.Por exemplo, o usuário não deseja marcar uma "palavra-chave", necessariamente, eles querem fazer algum texto em negrito.

Um DocBook editor seria uma coisa muito agradável (eu não tenho certeza de uma boa existir), mas ele não é realmente o que eu estou fazendo.

Bem, neste...Mas desde que eu precisa para ser capaz de converter para XML de qualquer maneira, por que segurar minha árvore do documento e o DOM de árvore na memória, quando não há nada que me impedem de trabalhar fora, a árvore DOM?

Particularmente desde uma característica única do meu programa é de que tudo é sempre gravado como você tipo, e eu não quero executar um todo conversão para XML cada vez que eu bater uma chave.Mais fácil apenas para amarrar a entrada e a saída diretamente para a minha memória árvore DOM.

Editar:Ah, e o único problema com o XHTML é que eu quero para o suporte básico de paginação.Embora eu acho que não há nada que me impedia com o uso de algumas tags adicionais para que...

XML é uma externo o formato, não interno.

O que há de errado com XHTML?É simples e é onipresente (pelo menos HTML é).A sua implementação deve ser fácil de depurar, e seu blog será eternamente grato.

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