XFA Query Node Collections
أحداث JavaScript وFormCalc يمكنها فحص نسخ العقد داخل النطاق وحفظ قوائم استعلام مستقلة عبر أحداث runtime
const siblings = xfa.record.amount.all;
const retained = siblings.clone();
retained.remove(retained.item(0));
retained.insert(siblings.item(0), null);
retained.item(0).rawValue = "42";
خصائص النسخ
node.all تعيد قائمة استعلام مرتبة طازجة للعقد داخل النطاق بنفس الاسم النصي؛ والعقدة غير المسنّاة تستخدم اسم صنفها بدلًا
node.classAll تعيد قائمة استعلام مرتبة طازجة للعقد داخل النطاق بنفس الصنف، بما يشمل عقدًا بأسماء أخرى
node.index وnode.classIndex تعيدان النسخة ذات الأساس الصفري داخل نطاقيها المقابلين
الحاويات غير المسنّاة غير الخصائصية شفافة لبحث النطاق المسنّى، بما يشمل نسخ SOM النسبية الموجبة والسالبة؛ وحاويات الخصائص تحفظ نطاقها الخاص
الأسماء النصية مثل #field و* وأسماء Unicode تُطابَق بوصفها أسماء مؤلفة من هذه الخصائص
عمليات القوائم المستقلة
| العضو | السلوك |
|---|---|
length | عدد مدخلات القائمة الحالي |
item(index) | العقدة المُشار إليها، أو null لفهرس سالب أو غير صحيح أو خارج النطاق |
namedItem(name) | أول عقدة مُشار إليها بذلك الاسم النصي، أو null عندما لا تطابق أي عقدة |
clone() | تخزين مدخلات مستقل جديد يشير إلى نفس العقد |
append(node) | إضافة نفس المرجع للعقدة الحية في النهاية، بما يشمل مرجعًا مكررًا |
insert(node, before) | إدراج مرجع عقدة حية قبل أول مرجع مطابق؛ وnull تُلحق |
remove(node) | إزالة أول مرجع مطابق؛ والمرجع الغائب يثير خطأ |
القوائم المعادة من resolveNodes وall وclassAll تستخدم تخزين مدخلات مستقلًا؛ وتغيير ذلك التخزين يترك شجرتَي النموذج والبيانات مكانيهما، بينما كتابة عقدة مشار إليها تغيّر العقدة الفعلية
مجموعات node.nodes للنماذج والخصائص تكشف مشاهد أبناء حية؛ وأساليب clone() لديها تعيد قوائم استعلام مستقلة، كما في مجموعات الأبناء الحية في XFA
node.nodes لـ Data DOM تزوّد أيضًا clone() مستقلة؛ وأساليبها البنيوية append وinsert وremove القائمة تحفظ سلوكها البنيوي الأصلي، كما في بنية Data DOM الأصلية في XFA
تكرار المصفوفات والقراءات المفهرسة والتعداد يكشف عقدًا مُشارًا إليها؛ والإسناد أو الحذف أو إعادة تعريف خاصية أو تغييرات النموذج الأولي أو منع الامتدادات المباشرة تثير أخطاء قبل تغيير قائمة الاستعلام
الاستمرارية والهويات الثابتة
كائنات السكربت يمكنها حفظ قائمة استعلام أو استنساخها عبر الأحداث؛ وكل عملية تستخدم محلل الحدث الحالي وحدود المعاملة
handles مديري النسخ المستعلامَة توجّه العمليات إلى الرسم البياني الحالي للحدث عند حفظها أو استنساخها عبر الأحداث
إعادة تسمية أو إعادة ترتيب عقدة ناجية تحفظ هوية قائمتها المحفوظة؛ وإزالة نسخة نموذج متكررة تجعل القراءات والكتابات عبر ذلك المرجع المُزال تفشل بدلًا من انتقاء نسخة بديلة
قائمة مستقلة يمكنها استنساخ مراجعها المخزنة وإزالة مرجع عقدة مُزالة محفوظًا سابقًا دون إفكاش تلك العقدة
تخزين قوائم الاستعلام حالة سكربت لبيئة التشغيل؛ وحفظ XDP يستمر القيم والبنية الأصلية للعقد، بينما تبدأ بيئة تشغيل جديدة جلسة كائنات سكربت جديدة
المعاملات والحدود
العقد غير الصالحة ومراجع العضوية تفشل قبل أن يحوّل ذلك الفعل للقائمة التخزين؛ والخطأ الملتقط يترك العمليات الصالحة السابقة في الحدث نفسه متاحة
خطأ حدث غير ملتقط أو ميزانية عمليات أو فشل وقت منقضٍ يستعيد تحويلات قوائم الاستعلام والقيم الأصلية والنسخ المتكررة وحالة كائنات السكربت المحفوظة وحالة السجل معًا، فيتيح لبيئة التشغيل نفسها إعادة المحاولة
TXFAFormScriptLimits.MaxArrayItems تحدد سقف طول كل قائمة محفوظة وتحدد سقفًا منفصلًا لكائنات القوائم التراكمية والمدخلات المخصصة حديثًا خلال حدث واحد؛ وضبطها صفرًا يستخدم افتراضي سياق الحدث البالغ 65,536
الاستنساخات الفارغة تستهلك ميزانية الكائنات، والاستنساخات غير الفارغة تستهلك أيضًا ميزانية المدخلات، والقوائم المحفوظة تبقى محدودة السقف عبر أحداث ناجحة منفصلة
استهلاك FormCalc وPDF
output = Concat(Sum(xfa.datasets.data.main.amount.all), ":",
xfa.datasets.data.main.amount.all.length, ":",
xfa.datasets.data.main.amount[1].classIndex)
انتقاء النسخ في FormCalc على مسارات xfa.form وxfa.datasets وxfa.record النصية يستخدم حل SOM الأصلي؛ وفهرسة القائمة بعد خاصية مجموعة تفهرس تلك المجموعة
احفظ بايتات runtime إلى XDP ومرّرها إلى HPDFXFAWriteHeadlessPDF لتوليد حقول ومظاهر أصلية فعلية من القيم المُرسَلة، بما يشمل تعديلات عبر مراجع نسخ متكررة ناجية محفوظة
TXFAHeadlessPDFOptions.Editable = False تنشئ حقولًا أصلية للقراءة فقط بمظاهر بدلًا من تسطيحها
التغطية
هذه الواجهة تزوّد قوائم استعلام مستقلة وmetadata نسخ؛ وإنشاء واستنساخ عقد القالب/النموذج العام وبرمجة أصناف عقد إضافية والتحقق من المخطط والوسائط الخارجية تبقى عملًا منفصلًا