Property DOM XFA natif
L'exécution générale avec EnableJavaScript inclut les enfants de propriétés des conteneurs de formulaire dans l'arbre d'événements dynamique, y compris les nœuds value, typed value, font, fill, color, ui, border et edge
Les conteneurs nommés utilisent leur name dans les chemins SOM ; les nœuds de propriétés utilisent leur nom de classe et conservent leur attribut name réel, généralement vide
Valeurs typées et attributs
const field = xfa.resolveNode("main.row[1].cell");
field.value.text.value = "25";
field.font.size = "18pt";
field.font.fill.color.value = "0,128,255";
field.ui.textEdit.multiLine = "1";
field.resolveNode("border.edge[1]").thickness = "3pt";
field.font.setAttribute("saved", "custom");
const saved = field.font.getAttribute("custom");
row[1].cell.value.text.value = 25
row[1].cell.font.size = "18pt"
Un enfant typé sous le nœud value d'un champ partage le rawValue dynamique du champ ; les lectures et écritures via value.text.value, field.rawValue et le dataNode lié s'observent mutuellement immédiatement
Pour les nœuds de propriétés avec un attribut value, comme color, la propriété value lit et écrit cet attribut ; pour les nœuds de contenu scalaires, elle lit et écrit le contenu texte
Les attributs présents dans le binding de propriétés effectif sont exposés comme propriétés directes, sauf les membres réservés de nœuds et du moteur ; getAttribute(name) lit un attribut arbitraire et setAttribute(value, name) en écrit un et expose immédiatement un nouveau nom sûr
FormCalc résout les chemins de propriétés et affecte les attributs scalaires via le même arbre d'événements ; les sœurs de propriétés prennent en charge les index d'occurrences et les sélecteurs de classes
Persistance et rendu natifs
Les écritures réussies créent ou mettent à jour les nœuds de propriétés sous l'occurrence de conteneur correspondante dans le packet de formulaire natif ; le template et les autres occurrences répétées conservent leurs valeurs par défaut
La consultation de propriétés suit la classe et l'occurrence locale sous le conteneur nommé au lieu de sauter les nœuds sans nom ; changer un attribut name de propriété préserve son identité, et le XDP enregistré recharge les overrides effectifs
Les handles de propriétés conservés suivent les identités de propriétaires publiées à travers l'insertion et le déplacement d'instances ; écrire un handle après suppression de son instance avorte et restaure la transaction
Le typeface et la taille de police participent à la mesure et au reflow du texte extensible par instance ; le flatten lit les attributs effectifs de police, couleur, bordure, paragraphe et UI pris en charge pour chaque occurrence de champ
Les draws de rich text consomment les overrides effectifs de police, paragraphe, CSS inline et contenu scalaire pour chaque occurrence, y compris leur mesure et leur placement de runs
La création d'instances conserve toutes les valeurs par défaut des sœurs de propriétés, y compris plusieurs nœuds edge, et utilise les valeurs d'attributs du template plutôt que les overrides d'une autre occurrence
Les overrides d'UI créent les choix de widgets pris en charge et changent le kind de runtime réel par instance et les flags natifs de champs après un événement réussi
Budgets et bindings de bas niveau
Le parcours de propriétés partage les budgets de nœuds, de profondeur, d'opérations et d'octets d'événements ; les écritures natives de texte et d'attributs obéissent à MaxValueChars, et les écritures en échec restaurent les valeurs de champs natives, les overrides de propriétés, l'état des scripts et l'ordre des instances
Les appelants directs utilisent xebdProperty et fournissent Attributes et DefaultAttributes ; ces derniers initialisent les nœuds nouvellement clonés
Une action d'attribut de propriété contient le nom d'attribut, un séparateur NUL et la valeur dans TXFAEventAction.Value ; TXFAWidgetRuntime valide et applique le tout à la cible de propriété native
Couverture
L'arbre d'événements inclut les nœuds de propriétés déclarés et leurs attributs effectifs, avec des valeurs par défaut de schéma pour les classes de formatage et de widgets prises en charge ; la création de propriétés absentes matérialise désormais les chemins de formatage pris en charge dans le packet de formulaire natif
Les déclarations event, calculate et validate restent des métadonnées d'exécution ; les scripts variables restent des script objects, et l'édition générale de propriétés n'active pas les scripts de métadonnées
Les classes de propriétés de schéma supplémentaires, la suppression générique et le reparentage, la mutation d'attributs qualifiés par espace de noms, les consommateurs supplémentaires de propriétés de mise en page et les fonctionnalités d'édition de rich text ou de widgets supplémentaires continuent comme cibles séparées
APIs associées
Résolution SOM dynamique, Data DOM natif, HPDFXFAResolveFormInstanceProperty et Runtime XFA interactif