XFA Packet DOM
TXFAPacketDOM, eksiksiz bir XDP stream'ini ya da sıralı bir PDF /XFA packet array'ini yükler, packet root'larını ve sınırlı local-name path sorgularını ortaya çıkarır ve element, text, CDATA, attribute, packet-ekleme, packet-silme ile packet-yeniden adlandırma düzenlemelerini destekler
Kayıpsız dokunulmamış packet'ler
Yüklenen her stream veya packet, özgün byte'larını ve yapısal bir parmak izini saklar; DOM'a dokunulmamışken serialization bu byte'ları birebir döndürür, bir packet-array düzenlemesi ise yalnızca değişen packet'i yeniden yazar ve değişmeyen her kardeşi byte düzeyinde korur
Canonical değiştirilmiş output
Değiştirilmiş ağaçlar UTF-8 XML, deterministik namespace ve attribute sırası, qualified element adları, XML entity escaping, gömülü ]]> için güvenli CDATA bölmesi, kendi kendine kapanan boş elementler ve kaynak array'den gelen packet sırası kullanır
Canonical output, sözdizimsel süsler yerine DOM content'ini temsil eder; bu yüzden düzenlemeden sonra yorumlar, processing instruction'lar, kaynak girintisi, özgün XML bildirimi ve kaynak DOCTYPE yeniden oynatılmaz. Dahili entity değerleri metin olarak genişletilir ve harici entity'ler çözülmemiş hâlde kalır
Sorgular ve düzenlemeler
var
DOM: TXFAPacketDOM;
Nodes: TArray<TXFANode>;
XDP: TBytes;
begin
DOM := TXFAPacketDOM.Create;
try
DOM.LoadXDPStream(SourceBytes);
Nodes := DOM.SelectNodes('datasets', '//customer/name');
if Length(Nodes) > 0 then
Nodes[0].SetText('Updated & verified', True);
XDP := DOM.SerializeXDPStream;
PDF.SetXFADocument(XDP);
finally
DOM.Free;
end;
end;
Baştaki // sınırlı bir descendant sorgusu yapar, slash ile ayrılmış segmentler doğrudan children seçer; * herhangi bir elementle eşleşir ve sıfır tabanlı [N] soneki tek bir eşleşmeyi seçer
Packet-array yayımlama
SerializePacketArray sıralı TXFAPacketData kayıtları döndürür; her kaydı THotPDF.AddXFAPacket'e verin veya tek stream biçimi için SerializeXDPStream'i THotPDF.SetXFADocument ile kullanın
Bütçeler
TXFADOMLimits.Default; toplam girdi ve çıktı byte'ını, packet sayısını, düğüm sayısını, derinliği, düğüm başına öznitelik sayısını, toplam öznitelik ve metin byte'ını ve MaxQueryResults değerini sınırlar; ayrıştırma, mutation doğrulama, sorgulama, fingerprint alma ve serileştirme bir sınır aşıldığında EHPDFXFAError ile başarısız olur
Ayrıca bkz. TXFAPacketDOM, TXFANode ve TXFADOMLimits