Nativt XFA exData XML

Den allmänna händelsevärden skapar frånvarande exData-värdeegenskaper och importerar verkliga främmande XML-barn till deras nativa formulärförekomster; XHTML-draw-innehåll når rich text-PDF-konsumenten efter nativ XDP-persistens och omläsning

Import och läsning av XML

const content = row.label.value.exData;
content.contentType = "text/html";
content.loadXML(
  '<body xmlns="http://www.w3.org/1999/xhtml">' +
  '<p><span style="font-size:18pt;color:#0000FF">Changed</span></p>' +
  '</body>',
  false,
  true
);
const currentXML = content.saveXML();
const readableXML = content.saveXML("pretty");

loadXML(source, ignoreRoot=true, overwrite=false) accepterar en sträng med ett välformat XML-dokument och returnerar undefined; ignoreRoot lägger till den aggregerande rotens barn, medan false lägger till roten själv

Overwrite ersätter befintligt innehåll före importen; dess standardvärde false lägger till innehåll i dokumentordning och bevarar tidigare importerade barn

saveXML() returnerar det aktuella exData-elementet och dess innehåll som en UTF-8 XML-deklaration och fragmentsträng; den valfria litteralen pretty indrar innehåll som enbart består av element och bevarar samtidigt blandad text och CDATA-whitespace

Importerade elementnamn, namespace-deklarationer, namnrymdskvalificerade attribut, litteral Unicode, teckenreferenser, blandad text och CDATA förblir nativ XML; markup lagras inte som en vanlig rawValue-sträng

Skapande och standardvärden

Värdeegenskaper tillåter ett exData-barn, ömsesidigt uteslutande med de övriga valmöjligheterna för värdet; ett saknat draw-värde och exData-barn kan skapas och importeras under samma händelse

exData har standardvärdena maxLength=-1 och transferEncoding=none, med tomma attribut contentType, href, id, name, rid, use och usehref

Händelsevärden exponerar ingen skalär värdeaccessor på exData; använd loadXML och saveXML för främmande XML-innehåll

Omedelbara läsningar, identitet och transaktioner

En ren nativ XML-operation validerar och serialiserar varje förfrågan innan skriptkörningen fortsätter; felaktig XML kastar inuti skriptet och kan hanteras med try/catch utan att ändra aktuellt innehåll

Den deterministiska svarsreplayen delar den befintliga skripttransaktionen och utför inga UI-, fil-, nätverks- eller transportsideffekter

Efterföljande saveXML-anrop ser tidigare lyckade importer och aktuella exData-attribut under samma händelse; kvarhållna referenser löser nodens aktuella identitet i senare händelser

Endast den riktade upprepade förekomsten tar emot nativt innehåll, och en ny förekomst initieras från mallens XML i stället för att kopiera en befintlig förekomsts importerade överskrivning

En tom importerad rot med overwrite=true rensar det faktiska innehållet och förblir tom efter persistens och omläsning; den återgår inte till mallinnehållet

Ohanterade skriptfel och nativa publiceringsfel återställer exakta nativa XDP-bytes, inklusive tidigare vanliga fältskrivningar och XML-mutationer

Budgetar och sparad konsumtion

Skriptgränserna binder XML-indata- och utdatabytes, nativa element- och textnoder, djup, operationer, förfluten tid och replaysvar; widgetens MaxValueChars binder också det publicerade XML-värdet

FPC-bryggan bevarar UTF-8-bytes genom XML-svar och vanliga åtgärdsvärden, inklusive accentuerade tecken och kompletterande Unicode

Sparat XHTML-draw-innehåll använder den befintliga rich text-konsumentens beteende för teckensnitt, storlek, färg och inline CSS; oberoende PDF-läsare verifierar text i första instans, ersättningsstilning, innehåll i nya instanser och explicit rensning

Återstående XML-integrationsmål

Denna leverans implementerar exData-innehållsoperationer; loadXML/saveXML för andra nodeklasser, strukturell import till Data DOM och allmän mutation av främmande noder är separata mål

DTD-deklarationer och anpassade entitetskataloger förblir oimplementerade; fördefinierade entiteter samt decimala eller hexadecimala teckenreferenser stöds

Kommentarer och processinstruktioner inne i element förblir nativa genom import, omedelbara läsningar, sparning, omläsning och rollback; markup på dokumentnivå utanför roten och fullständiga lexikala XML-omväxlingar är separata mål

Uppslagning av externa href, kodade exData-överföringar, maxLength-hänsyn, främmande mediekonsumenter och Unicode-appearances för rich widgets är separata implementeringsmål

Referenser och relaterade API:er

Importrotens och ersättningens semantik följer Adobe XFA Element API; XML-namn, referenser och whitespace följer XML 1.0

Se TXFAEventBinding, TXFAEventActionKind, Rich Text-egenskaper och Interaktiv XFA-runtime