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