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