Valores vazios sem perdas de escolhas em XFDF

Um campo de escolha pode não ter opções selecionadas, ou pode selecionar uma opção cujo valor de exportação é a string vazia; estes estados produzem valores de campos PDF diferentes e têm de permanecer distintos durante uma viagem de ida e volta de exportação/importação

Seleção vazia e valor de exportação vazio

O HotPDF exporta um array de valores vazio com um atributo explícito de extensão no namespace https://www.loslab.com/hotpdf/xfdf/

<xfdf xmlns="http://ns.adobe.com/xfdf/" xmlns:hpdf="https://www.loslab.com/hotpdf/xfdf/">
  <fields>
    <field name="Choice" hpdf:empty-values="true"><value/></field>
  </fields>
</xfdf>

O atributo representa um array vazio, pelo que importar este campo limpa as opções selecionadas dele

Um value vazio sem marca mantém o significado ordinário dele: representa a string vazia e seleciona a opção de exportação vazia correspondente quando essa opção existe

<field name="Choice"><value/></field>

Um campo contendo apenas o nome dele mantém o comportamento existente de apenas-nome e não se torna uma limpeza explícita

Namespace e validação de entradas

O importador identifica a extensão pelo nome de namespace expandido dela, pelo que o prefixo pode diferir de hpdf; um atributo não qualificado ou um atributo noutro namespace não pede uma limpeza

O valor da extensão tem de ser exatamente true, com nenhum elemento value ou um elemento value vazio; valores não vazios conflituosos, valores repetidos e valores rich text são rejeitados

A declaração de namespace e o atributo de extensão contam para os orçamentos existentes de objetos e de bytes; o cancelamento e as verificações transacionais permanecem em efeito

Interoperabilidade

Este atributo é uma extensão do HotPDF e não é uma declaração de extensão Adobe XFDF nem ISO; outros consumidores podem ignorá-lo e interpretar o valor vazio de acordo com o comportamento próprio deles

Use um consumidor consciente do HotPDF quando a distinção entre nenhuma seleção e uma seleção de string vazia tiver de sobreviver a uma viagem de ida e volta

APIs nativas, de trabalhos e de callbacks

A mesma representação aplica-se à troca nativa de dados de formulários e aos pontos de entrada JSON/callback existentes de Windows e de Linux; não acrescenta campos aos registos versionados V1 de callbacks

Os limites JSON de dados de formulários de Windows usam formData, enquanto os limites JSON de dados de formulários de Linux usam formDataLimits; use a chave documentada para a API alvo

Uma importação inalterada preserva os bytes originais do ficheiro quando não há edições pendentes de documentos; edições pendentes existentes permanecem parte do documento preparado, e a publicação mantém as verificações existentes de saída atómica e de permissões autenticadas

Tópicos relacionados