XFA paket DOM
TXFAPacketDOM učitava ili kompletan XDP tok ili uređeni PDF /XFA niz paketa, izlaže korene paketa i ograničene upite putanja lokalnih imena i podržava uređivanja elemenata, teksta, CDATA, atributa, dodavanja paketa, uklanjanja paketa i preimenovanja paketa
Paketi bez gubitaka i netaknuti
Svaki učitani tok ili paket zadržava svoje originalne bajtove i strukturni otisak; serijalizacija vraća te tačne bajtove kada je DOM netaknut, a uređivanje niza paketa ponovo zapisuje samo promenjeni paket uz očuvanje bajtova svakog nepromenjenog suseda
Kanonski izmenjeni izlaz
Izmenjena stabla koriste UTF-8 XML, deterministički redosled imenskih prostora i atributa, kvalifikovana imena elemenata, ekranizovanje XML entiteta, bezbedno deljenje CDATA za ugrađeno ]]>, samozatvarajuće prazne elemente i redosled paketa iz izvornog niza
Kanonski izlaz predstavlja DOM sadržaj, a ne leksičke sitnice, tako da se komentari, instrukcije obrade, uvlačenje izvora, originalna XML deklaracija i izvorni DOCTYPE ne reprodukuju nakon uređivanja; vrednosti unutrašnjih entiteta proširuju se kao tekst, a spoljni entiteti ostaju nerazrešeni
Upiti i uređivanja
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;
Vodeće // izvršava ograničeni upit potomaka, dok segmenti odvojeni kosom crtom biraju direktnu decu; * se poklapa sa bilo kojim elementom, a sufiks [N] koji počinje od nule bira jedno poklapanje
Publikacija niza paketa
SerializePacketArray vraća uređene TXFAPacketData zapise; prosledite svaki zapis THotPDF.AddXFAPacket-u ili koristite SerializeXDPStream sa THotPDF.SetXFADocument za formu sa jednim tokom
Budžeti
TXFADOMLimits.Default ograničava agregatne ulazne i izlazne bajtove, broj paketa, broj čvorova, dubinu, atribute po čvoru, agregatne bajtove atributa i teksta i MaxQueryResults; parsiranje, validacija izmena, upiti, otiskivanje i serijalizacija ne uspevaju sa EHPDFXFAError kada se pređe granica
Pogledajte TXFAPacketDOM, TXFANode i TXFADOMLimits