Valores de choice vazios sem perdas em XFDF

Um campo choice pode não ter opções selecionadas, ou pode selecionar uma opção cujo export value é a string vazia; esses estados produzem valores de campos PDF diferentes e precisam permanecer distintos durante um round trip de export/import

Seleção vazia e export value vazio

HotPDF exporta um array de valores vazio com um atributo de extensão explícito 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, então importar este campo limpa suas opções selecionadas

Um value vazio sem a marca retém seu significado comum: representa a string vazia e seleciona a opção de export vazia correspondente quando essa opção existe

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

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

Namespace e validação de entrada

O importer identifica a extensão pelo nome expandido do namespace, então o prefixo pode diferir de hpdf; um atributo não qualificado ou um atributo em outro namespace não solicita limpeza

O valor da extensão precisa ser exatamente true, sem elemento value ou com um elemento value vazio; valores não vazios conflitantes, valores repetidos e valores rich-text são rejeitados

A declaração de namespace e o atributo de extensão contam nos orçamentos existentes de objetos e bytes; as checagens de cancelamento e transação permanecem em vigor

Interoperabilidade

Este atributo é uma extensão HotPDF e não é uma declaração de extensão Adobe XFDF nem ISO; outros consumers podem ignorá-lo e interpretar o valor vazio conforme seu próprio comportamento

Use um consumer ciente de HotPDF quando a distinção entre nenhuma seleção e uma seleção de string vazia precisar sobreviver a um round trip

APIs nativas, de jobs e de callbacks

A mesma representação se aplica à troca nativa de form data e aos entry points JSON/callback existentes do Windows e do Linux; ela não adiciona campos aos records V1 versionados de callbacks

Os limites JSON de form data do Windows usam formData, enquanto os limites JSON de form data do Linux usam formDataLimits; use a chave documentada para a API alvo

Um import inalterado preserva os bytes originais do arquivo quando não há edições pendentes de documento; edições pendentes existentes permanecem parte do documento preparado, e a publicação retém as checagens existentes de saída atômica e permissões autenticadas

Tópicos relacionados