Create classes for XFA JS objects

This CL creates classes for the various XFA JS objects. The method
calls from xfa_basic_data_element_script have been modified to call
these methods instead of methods in CJX_Object.

Change-Id: Idb2de38656f7e8edc559d44921eba25073e6c806
Reviewed-on: https://pdfium-review.googlesource.com/21110
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
diff --git a/xfa/fxfa/parser/cxfa_arc.cpp b/xfa/fxfa/parser/cxfa_arc.cpp
index 2620954..2a06ba6 100644
--- a/xfa/fxfa/parser/cxfa_arc.cpp
+++ b/xfa/fxfa/parser/cxfa_arc.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_arc.h"
 
+#include "fxjs/xfa/cjx_arc.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Edge, 1, 0},
@@ -34,6 +37,7 @@
                 XFA_Element::Arc,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Arc>(this)) {}
 
 CXFA_Arc::~CXFA_Arc() {}
diff --git a/xfa/fxfa/parser/cxfa_area.cpp b/xfa/fxfa/parser/cxfa_area.cpp
index 6534ac3..7fd8aa6 100644
--- a/xfa/fxfa/parser/cxfa_area.cpp
+++ b/xfa/fxfa/parser/cxfa_area.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_area.h"
 
-#include "fxjs/xfa/cjx_container.h"
+#include "fxjs/xfa/cjx_area.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -41,6 +41,6 @@
           kPropertyData,
           kAttributeData,
           kName,
-          pdfium::MakeUnique<CJX_Container>(this)) {}
+          pdfium::MakeUnique<CJX_Area>(this)) {}
 
 CXFA_Area::~CXFA_Area() {}
diff --git a/xfa/fxfa/parser/cxfa_assist.cpp b/xfa/fxfa/parser/cxfa_assist.cpp
index 93f3358..4286211 100644
--- a/xfa/fxfa/parser/cxfa_assist.cpp
+++ b/xfa/fxfa/parser/cxfa_assist.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_assist.h"
 
+#include "fxjs/xfa/cjx_assist.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::ToolTip, 1, 0},
@@ -30,6 +33,7 @@
                 XFA_Element::Assist,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Assist>(this)) {}
 
 CXFA_Assist::~CXFA_Assist() {}
diff --git a/xfa/fxfa/parser/cxfa_barcode.cpp b/xfa/fxfa/parser/cxfa_barcode.cpp
index 9ab4aef..d692291 100644
--- a/xfa/fxfa/parser/cxfa_barcode.cpp
+++ b/xfa/fxfa/parser/cxfa_barcode.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_barcode.h"
 
+#include "fxjs/xfa/cjx_barcode.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -48,6 +51,7 @@
                 XFA_Element::Barcode,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Barcode>(this)) {}
 
 CXFA_Barcode::~CXFA_Barcode() {}
diff --git a/xfa/fxfa/parser/cxfa_bind.cpp b/xfa/fxfa/parser/cxfa_bind.cpp
index feef393..e93b369 100644
--- a/xfa/fxfa/parser/cxfa_bind.cpp
+++ b/xfa/fxfa/parser/cxfa_bind.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_bind.h"
 
+#include "fxjs/xfa/cjx_bind.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Picture, 1, 0},
@@ -36,6 +39,7 @@
                 XFA_Element::Bind,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Bind>(this)) {}
 
 CXFA_Bind::~CXFA_Bind() {}
diff --git a/xfa/fxfa/parser/cxfa_binditems.cpp b/xfa/fxfa/parser/cxfa_binditems.cpp
index fd27043..1c33e4c 100644
--- a/xfa/fxfa/parser/cxfa_binditems.cpp
+++ b/xfa/fxfa/parser/cxfa_binditems.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_binditems.h"
 
+#include "fxjs/xfa/cjx_binditems.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -27,6 +30,7 @@
                 XFA_Element::BindItems,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_BindItems>(this)) {}
 
 CXFA_BindItems::~CXFA_BindItems() {}
diff --git a/xfa/fxfa/parser/cxfa_bookend.cpp b/xfa/fxfa/parser/cxfa_bookend.cpp
index 20037f0..6b172be 100644
--- a/xfa/fxfa/parser/cxfa_bookend.cpp
+++ b/xfa/fxfa/parser/cxfa_bookend.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_bookend.h"
 
+#include "fxjs/xfa/cjx_bookend.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -28,6 +31,7 @@
                 XFA_Element::Bookend,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Bookend>(this)) {}
 
 CXFA_Bookend::~CXFA_Bookend() {}
diff --git a/xfa/fxfa/parser/cxfa_boolean.cpp b/xfa/fxfa/parser/cxfa_boolean.cpp
index 27931b1..f804919 100644
--- a/xfa/fxfa/parser/cxfa_boolean.cpp
+++ b/xfa/fxfa/parser/cxfa_boolean.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_boolean.h"
 
-#include "fxjs/xfa/cjx_content.h"
+#include "fxjs/xfa/cjx_boolean.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -32,6 +32,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_Content>(this)) {}
+                pdfium::MakeUnique<CJX_Boolean>(this)) {}
 
 CXFA_Boolean::~CXFA_Boolean() {}
diff --git a/xfa/fxfa/parser/cxfa_border.cpp b/xfa/fxfa/parser/cxfa_border.cpp
index 9a58366..8f22892 100644
--- a/xfa/fxfa/parser/cxfa_border.cpp
+++ b/xfa/fxfa/parser/cxfa_border.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_border.h"
 
+#include "fxjs/xfa/cjx_border.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {
@@ -37,6 +40,7 @@
                 XFA_Element::Border,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Border>(this)) {}
 
 CXFA_Border::~CXFA_Border() {}
diff --git a/xfa/fxfa/parser/cxfa_break.cpp b/xfa/fxfa/parser/cxfa_break.cpp
index fcce81c..3a83b1c 100644
--- a/xfa/fxfa/parser/cxfa_break.cpp
+++ b/xfa/fxfa/parser/cxfa_break.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_break.h"
 
+#include "fxjs/xfa/cjx_break.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
@@ -40,6 +43,7 @@
                 XFA_Element::Break,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Break>(this)) {}
 
 CXFA_Break::~CXFA_Break() {}
diff --git a/xfa/fxfa/parser/cxfa_breakafter.cpp b/xfa/fxfa/parser/cxfa_breakafter.cpp
index a85cf6d..925b721 100644
--- a/xfa/fxfa/parser/cxfa_breakafter.cpp
+++ b/xfa/fxfa/parser/cxfa_breakafter.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_breakafter.h"
 
+#include "fxjs/xfa/cjx_breakafter.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Script, 1, 0},
@@ -34,6 +37,7 @@
                 XFA_Element::BreakAfter,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_BreakAfter>(this)) {}
 
 CXFA_BreakAfter::~CXFA_BreakAfter() {}
diff --git a/xfa/fxfa/parser/cxfa_breakbefore.cpp b/xfa/fxfa/parser/cxfa_breakbefore.cpp
index 7c28feb..c8dcade 100644
--- a/xfa/fxfa/parser/cxfa_breakbefore.cpp
+++ b/xfa/fxfa/parser/cxfa_breakbefore.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_breakbefore.h"
 
+#include "fxjs/xfa/cjx_breakbefore.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Script, 1, 0},
@@ -34,6 +37,7 @@
                 XFA_Element::BreakBefore,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_BreakBefore>(this)) {}
 
 CXFA_BreakBefore::~CXFA_BreakBefore() {}
diff --git a/xfa/fxfa/parser/cxfa_button.cpp b/xfa/fxfa/parser/cxfa_button.cpp
index 9d589dc..2b62efb 100644
--- a/xfa/fxfa/parser/cxfa_button.cpp
+++ b/xfa/fxfa/parser/cxfa_button.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_button.h"
 
+#include "fxjs/xfa/cjx_button.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
@@ -30,6 +33,7 @@
                 XFA_Element::Button,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Button>(this)) {}
 
 CXFA_Button::~CXFA_Button() {}
diff --git a/xfa/fxfa/parser/cxfa_calculate.cpp b/xfa/fxfa/parser/cxfa_calculate.cpp
index f894ebf..714dfde 100644
--- a/xfa/fxfa/parser/cxfa_calculate.cpp
+++ b/xfa/fxfa/parser/cxfa_calculate.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_calculate.h"
 
+#include "fxjs/xfa/cjx_calculate.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Message, 1, 0},
@@ -32,6 +35,7 @@
                 XFA_Element::Calculate,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Calculate>(this)) {}
 
 CXFA_Calculate::~CXFA_Calculate() {}
diff --git a/xfa/fxfa/parser/cxfa_caption.cpp b/xfa/fxfa/parser/cxfa_caption.cpp
index 3b405ff..8148b44 100644
--- a/xfa/fxfa/parser/cxfa_caption.cpp
+++ b/xfa/fxfa/parser/cxfa_caption.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_caption.h"
 
+#include "fxjs/xfa/cjx_caption.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {
@@ -35,6 +38,7 @@
                 XFA_Element::Caption,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Caption>(this)) {}
 
 CXFA_Caption::~CXFA_Caption() {}
diff --git a/xfa/fxfa/parser/cxfa_certificate.cpp b/xfa/fxfa/parser/cxfa_certificate.cpp
index 65d555b..c3e8ec0 100644
--- a/xfa/fxfa/parser/cxfa_certificate.cpp
+++ b/xfa/fxfa/parser/cxfa_certificate.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_certificate.h"
 
-#include "fxjs/xfa/cjx_textnode.h"
+#include "fxjs/xfa/cjx_certificate.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -31,6 +31,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_TextNode>(this)) {}
+                pdfium::MakeUnique<CJX_Certificate>(this)) {}
 
 CXFA_Certificate::~CXFA_Certificate() {}
diff --git a/xfa/fxfa/parser/cxfa_certificates.cpp b/xfa/fxfa/parser/cxfa_certificates.cpp
index 29dd574..0af8f30 100644
--- a/xfa/fxfa/parser/cxfa_certificates.cpp
+++ b/xfa/fxfa/parser/cxfa_certificates.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_certificates.h"
 
+#include "fxjs/xfa/cjx_certificates.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {
@@ -34,6 +37,7 @@
                 XFA_Element::Certificates,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Certificates>(this)) {}
 
 CXFA_Certificates::~CXFA_Certificates() {}
diff --git a/xfa/fxfa/parser/cxfa_checkbutton.cpp b/xfa/fxfa/parser/cxfa_checkbutton.cpp
index 01adbdf..00f3993 100644
--- a/xfa/fxfa/parser/cxfa_checkbutton.cpp
+++ b/xfa/fxfa/parser/cxfa_checkbutton.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_checkbutton.h"
 
+#include "fxjs/xfa/cjx_checkbutton.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
@@ -36,6 +39,7 @@
                 XFA_Element::CheckButton,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_CheckButton>(this)) {}
 
 CXFA_CheckButton::~CXFA_CheckButton() {}
diff --git a/xfa/fxfa/parser/cxfa_choicelist.cpp b/xfa/fxfa/parser/cxfa_choicelist.cpp
index 452e87d..33f8683 100644
--- a/xfa/fxfa/parser/cxfa_choicelist.cpp
+++ b/xfa/fxfa/parser/cxfa_choicelist.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_choicelist.h"
 
+#include "fxjs/xfa/cjx_choicelist.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
@@ -35,6 +38,7 @@
                 XFA_Element::ChoiceList,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_ChoiceList>(this)) {}
 
 CXFA_ChoiceList::~CXFA_ChoiceList() {}
diff --git a/xfa/fxfa/parser/cxfa_color.cpp b/xfa/fxfa/parser/cxfa_color.cpp
index 9211af7..a072d03 100644
--- a/xfa/fxfa/parser/cxfa_color.cpp
+++ b/xfa/fxfa/parser/cxfa_color.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_color.h"
 
+#include "fxjs/xfa/cjx_color.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
@@ -30,6 +33,7 @@
                 XFA_Element::Color,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Color>(this)) {}
 
 CXFA_Color::~CXFA_Color() {}
diff --git a/xfa/fxfa/parser/cxfa_comb.cpp b/xfa/fxfa/parser/cxfa_comb.cpp
index af3567d..c427dde 100644
--- a/xfa/fxfa/parser/cxfa_comb.cpp
+++ b/xfa/fxfa/parser/cxfa_comb.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_comb.h"
 
+#include "fxjs/xfa/cjx_comb.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -27,6 +30,7 @@
                 XFA_Element::Comb,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Comb>(this)) {}
 
 CXFA_Comb::~CXFA_Comb() {}
diff --git a/xfa/fxfa/parser/cxfa_command.cpp b/xfa/fxfa/parser/cxfa_command.cpp
index 3ed2316..ce385e1 100644
--- a/xfa/fxfa/parser/cxfa_command.cpp
+++ b/xfa/fxfa/parser/cxfa_command.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_command.h"
 
+#include "fxjs/xfa/cjx_command.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Query, 1, 0},
@@ -33,6 +36,7 @@
                 XFA_Element::Command,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Command>(this)) {}
 
 CXFA_Command::~CXFA_Command() {}
diff --git a/xfa/fxfa/parser/cxfa_connect.cpp b/xfa/fxfa/parser/cxfa_connect.cpp
index 0def93d..40648f4 100644
--- a/xfa/fxfa/parser/cxfa_connect.cpp
+++ b/xfa/fxfa/parser/cxfa_connect.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_connect.h"
 
+#include "fxjs/xfa/cjx_connect.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {
@@ -40,6 +43,7 @@
                 XFA_Element::Connect,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Connect>(this)) {}
 
 CXFA_Connect::~CXFA_Connect() {}
diff --git a/xfa/fxfa/parser/cxfa_connectstring.cpp b/xfa/fxfa/parser/cxfa_connectstring.cpp
index 12e3777..87eb70d 100644
--- a/xfa/fxfa/parser/cxfa_connectstring.cpp
+++ b/xfa/fxfa/parser/cxfa_connectstring.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_connectstring.h"
 
+#include "fxjs/xfa/cjx_connectstring.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -28,6 +31,7 @@
                 XFA_Element::ConnectString,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_ConnectString>(this)) {}
 
 CXFA_ConnectString::~CXFA_ConnectString() {}
diff --git a/xfa/fxfa/parser/cxfa_contentarea.cpp b/xfa/fxfa/parser/cxfa_contentarea.cpp
index 6bf1a0c..48f52f7 100644
--- a/xfa/fxfa/parser/cxfa_contentarea.cpp
+++ b/xfa/fxfa/parser/cxfa_contentarea.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_contentarea.h"
 
-#include "fxjs/xfa/cjx_container.h"
+#include "fxjs/xfa/cjx_contentarea.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -39,6 +39,6 @@
                 kPropertyData,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_Container>(this)) {}
+                pdfium::MakeUnique<CJX_ContentArea>(this)) {}
 
 CXFA_ContentArea::~CXFA_ContentArea() {}
diff --git a/xfa/fxfa/parser/cxfa_corner.cpp b/xfa/fxfa/parser/cxfa_corner.cpp
index 951d58d..f1757a0 100644
--- a/xfa/fxfa/parser/cxfa_corner.cpp
+++ b/xfa/fxfa/parser/cxfa_corner.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_corner.h"
 
+#include "fxjs/xfa/cjx_corner.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0},
diff --git a/xfa/fxfa/parser/cxfa_datavalue.cpp b/xfa/fxfa/parser/cxfa_datavalue.cpp
index b3d7599..e2ebaf0 100644
--- a/xfa/fxfa/parser/cxfa_datavalue.cpp
+++ b/xfa/fxfa/parser/cxfa_datavalue.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_datavalue.h"
 
+#include "fxjs/xfa/cjx_datavalue.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -29,6 +32,7 @@
                 XFA_Element::DataValue,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_DataValue>(this)) {}
 
 CXFA_DataValue::~CXFA_DataValue() {}
diff --git a/xfa/fxfa/parser/cxfa_date.cpp b/xfa/fxfa/parser/cxfa_date.cpp
index 94cd872..984ab32 100644
--- a/xfa/fxfa/parser/cxfa_date.cpp
+++ b/xfa/fxfa/parser/cxfa_date.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_date.h"
 
-#include "fxjs/xfa/cjx_content.h"
+#include "fxjs/xfa/cjx_date.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -31,6 +31,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_Content>(this)) {}
+                pdfium::MakeUnique<CJX_Date>(this)) {}
 
 CXFA_Date::~CXFA_Date() {}
diff --git a/xfa/fxfa/parser/cxfa_datetime.cpp b/xfa/fxfa/parser/cxfa_datetime.cpp
index f25f8f3..809e40c 100644
--- a/xfa/fxfa/parser/cxfa_datetime.cpp
+++ b/xfa/fxfa/parser/cxfa_datetime.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_datetime.h"
 
-#include "fxjs/xfa/cjx_content.h"
+#include "fxjs/xfa/cjx_datetime.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -31,6 +31,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_Content>(this)) {}
+                pdfium::MakeUnique<CJX_DateTime>(this)) {}
 
 CXFA_DateTime::~CXFA_DateTime() {}
diff --git a/xfa/fxfa/parser/cxfa_datetimeedit.cpp b/xfa/fxfa/parser/cxfa_datetimeedit.cpp
index bec792d..5c9a804 100644
--- a/xfa/fxfa/parser/cxfa_datetimeedit.cpp
+++ b/xfa/fxfa/parser/cxfa_datetimeedit.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_datetimeedit.h"
 
+#include "fxjs/xfa/cjx_datetimeedit.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
@@ -35,6 +38,7 @@
                 XFA_Element::DateTimeEdit,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_DateTimeEdit>(this)) {}
 
 CXFA_DateTimeEdit::~CXFA_DateTimeEdit() {}
diff --git a/xfa/fxfa/parser/cxfa_decimal.cpp b/xfa/fxfa/parser/cxfa_decimal.cpp
index dbdcc39..c887e8d 100644
--- a/xfa/fxfa/parser/cxfa_decimal.cpp
+++ b/xfa/fxfa/parser/cxfa_decimal.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_decimal.h"
 
-#include "fxjs/xfa/cjx_content.h"
+#include "fxjs/xfa/cjx_decimal.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -33,6 +33,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_Content>(this)) {}
+                pdfium::MakeUnique<CJX_Decimal>(this)) {}
 
 CXFA_Decimal::~CXFA_Decimal() {}
diff --git a/xfa/fxfa/parser/cxfa_defaultui.cpp b/xfa/fxfa/parser/cxfa_defaultui.cpp
index 9b8c9c0..a940084 100644
--- a/xfa/fxfa/parser/cxfa_defaultui.cpp
+++ b/xfa/fxfa/parser/cxfa_defaultui.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_defaultui.h"
 
+#include "fxjs/xfa/cjx_defaultui.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
diff --git a/xfa/fxfa/parser/cxfa_delete.cpp b/xfa/fxfa/parser/cxfa_delete.cpp
index ccbba37..8477fa9 100644
--- a/xfa/fxfa/parser/cxfa_delete.cpp
+++ b/xfa/fxfa/parser/cxfa_delete.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_delete.h"
 
-#include "fxjs/xfa/cjx_textnode.h"
+#include "fxjs/xfa/cjx_delete.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -31,6 +31,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_TextNode>(this)) {}
+                pdfium::MakeUnique<CJX_Delete>(this)) {}
 
 CXFA_Delete::~CXFA_Delete() {}
diff --git a/xfa/fxfa/parser/cxfa_deltas.cpp b/xfa/fxfa/parser/cxfa_deltas.cpp
index 2b843b5..4db0936 100644
--- a/xfa/fxfa/parser/cxfa_deltas.cpp
+++ b/xfa/fxfa/parser/cxfa_deltas.cpp
@@ -6,20 +6,10 @@
 
 #include "xfa/fxfa/parser/cxfa_deltas.h"
 
-namespace {
+#include "fxjs/xfa/cjx_deltas.h"
+#include "third_party/base/ptr_util.h"
 
-constexpr wchar_t kName[] = L"deltas";
-
-}  // namespace
-
-CXFA_Deltas::CXFA_Deltas(CXFA_Document* doc, XFA_PacketType packet)
-    : CXFA_Node(doc,
-                packet,
-                XFA_XDPPACKET_Form,
-                XFA_ObjectType::Object,
-                XFA_Element::Deltas,
-                nullptr,
-                nullptr,
-                kName) {}
+CXFA_Deltas::CXFA_Deltas(CXFA_Document* doc)
+    : CXFA_List(doc, pdfium::MakeUnique<CJX_Deltas>(this)) {}
 
 CXFA_Deltas::~CXFA_Deltas() {}
diff --git a/xfa/fxfa/parser/cxfa_deltas.h b/xfa/fxfa/parser/cxfa_deltas.h
index 37566ae..4c00e9e 100644
--- a/xfa/fxfa/parser/cxfa_deltas.h
+++ b/xfa/fxfa/parser/cxfa_deltas.h
@@ -7,11 +7,11 @@
 #ifndef XFA_FXFA_PARSER_CXFA_DELTAS_H_
 #define XFA_FXFA_PARSER_CXFA_DELTAS_H_
 
-#include "xfa/fxfa/parser/cxfa_node.h"
+#include "xfa/fxfa/parser/cxfa_list.h"
 
-class CXFA_Deltas : public CXFA_Node {
+class CXFA_Deltas : public CXFA_List {
  public:
-  CXFA_Deltas(CXFA_Document* doc, XFA_PacketType packet);
+  explicit CXFA_Deltas(CXFA_Document* doc);
   ~CXFA_Deltas() override;
 };
 
diff --git a/xfa/fxfa/parser/cxfa_digestmethod.cpp b/xfa/fxfa/parser/cxfa_digestmethod.cpp
index a213d0a..e74832e 100644
--- a/xfa/fxfa/parser/cxfa_digestmethod.cpp
+++ b/xfa/fxfa/parser/cxfa_digestmethod.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_digestmethod.h"
 
+#include "fxjs/xfa/cjx_digestmethod.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -26,6 +29,7 @@
                 XFA_Element::DigestMethod,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_DigestMethod>(this)) {}
 
 CXFA_DigestMethod::~CXFA_DigestMethod() {}
diff --git a/xfa/fxfa/parser/cxfa_digestmethods.cpp b/xfa/fxfa/parser/cxfa_digestmethods.cpp
index 52a8da5..4993fd0 100644
--- a/xfa/fxfa/parser/cxfa_digestmethods.cpp
+++ b/xfa/fxfa/parser/cxfa_digestmethods.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_digestmethods.h"
 
+#include "fxjs/xfa/cjx_digestmethods.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -29,6 +32,7 @@
                 XFA_Element::DigestMethods,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_DigestMethods>(this)) {}
 
 CXFA_DigestMethods::~CXFA_DigestMethods() {}
diff --git a/xfa/fxfa/parser/cxfa_draw.cpp b/xfa/fxfa/parser/cxfa_draw.cpp
index 1febee0..8d0dd37 100644
--- a/xfa/fxfa/parser/cxfa_draw.cpp
+++ b/xfa/fxfa/parser/cxfa_draw.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_draw.h"
 
-#include "fxjs/xfa/cjx_container.h"
+#include "fxjs/xfa/cjx_draw.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -59,6 +59,6 @@
                 kPropertyData,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_Container>(this)) {}
+                pdfium::MakeUnique<CJX_Draw>(this)) {}
 
 CXFA_Draw::~CXFA_Draw() {}
diff --git a/xfa/fxfa/parser/cxfa_edge.cpp b/xfa/fxfa/parser/cxfa_edge.cpp
index d976310..5eb969c 100644
--- a/xfa/fxfa/parser/cxfa_edge.cpp
+++ b/xfa/fxfa/parser/cxfa_edge.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_edge.h"
 
+#include "fxjs/xfa/cjx_edge.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0},
@@ -36,6 +39,7 @@
                 XFA_Element::Edge,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Edge>(this)) {}
 
 CXFA_Edge::~CXFA_Edge() {}
diff --git a/xfa/fxfa/parser/cxfa_encoding.cpp b/xfa/fxfa/parser/cxfa_encoding.cpp
index 27269b4..303221a 100644
--- a/xfa/fxfa/parser/cxfa_encoding.cpp
+++ b/xfa/fxfa/parser/cxfa_encoding.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_encoding.h"
 
+#include "fxjs/xfa/cjx_encoding.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -26,6 +29,7 @@
                 XFA_Element::Encoding,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Encoding>(this)) {}
 
 CXFA_Encoding::~CXFA_Encoding() {}
diff --git a/xfa/fxfa/parser/cxfa_encodings.cpp b/xfa/fxfa/parser/cxfa_encodings.cpp
index d6b1fb7..c0df2d6 100644
--- a/xfa/fxfa/parser/cxfa_encodings.cpp
+++ b/xfa/fxfa/parser/cxfa_encodings.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_encodings.h"
 
+#include "fxjs/xfa/cjx_encodings.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -28,6 +31,7 @@
                 XFA_Element::Encodings,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Encodings>(this)) {}
 
 CXFA_Encodings::~CXFA_Encodings() {}
diff --git a/xfa/fxfa/parser/cxfa_encrypt.cpp b/xfa/fxfa/parser/cxfa_encrypt.cpp
index 2e38bef..6ddf941 100644
--- a/xfa/fxfa/parser/cxfa_encrypt.cpp
+++ b/xfa/fxfa/parser/cxfa_encrypt.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_encrypt.h"
 
+#include "fxjs/xfa/cjx_encrypt.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {
@@ -32,6 +35,7 @@
           XFA_Element::Encrypt,
           kPropertyData,
           kAttributeData,
-          kName) {}
+          kName,
+          pdfium::MakeUnique<CJX_Encrypt>(this)) {}
 
 CXFA_Encrypt::~CXFA_Encrypt() {}
diff --git a/xfa/fxfa/parser/cxfa_event.cpp b/xfa/fxfa/parser/cxfa_event.cpp
index 940be13..b3ee47b 100644
--- a/xfa/fxfa/parser/cxfa_event.cpp
+++ b/xfa/fxfa/parser/cxfa_event.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_event.h"
 
+#include "fxjs/xfa/cjx_event.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {
@@ -39,6 +42,7 @@
                 XFA_Element::Event,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Event>(this)) {}
 
 CXFA_Event::~CXFA_Event() {}
diff --git a/xfa/fxfa/parser/cxfa_exdata.cpp b/xfa/fxfa/parser/cxfa_exdata.cpp
index 437024f..2c4571d 100644
--- a/xfa/fxfa/parser/cxfa_exdata.cpp
+++ b/xfa/fxfa/parser/cxfa_exdata.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_exdata.h"
 
-#include "fxjs/xfa/cjx_content.h"
+#include "fxjs/xfa/cjx_exdata.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -37,6 +37,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_Content>(this)) {}
+                pdfium::MakeUnique<CJX_ExData>(this)) {}
 
 CXFA_ExData::~CXFA_ExData() {}
diff --git a/xfa/fxfa/parser/cxfa_execute.cpp b/xfa/fxfa/parser/cxfa_execute.cpp
index a2af26b..4196e8f 100644
--- a/xfa/fxfa/parser/cxfa_execute.cpp
+++ b/xfa/fxfa/parser/cxfa_execute.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_execute.h"
 
+#include "fxjs/xfa/cjx_execute.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -31,6 +34,7 @@
                 XFA_Element::Execute,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Execute>(this)) {}
 
 CXFA_Execute::~CXFA_Execute() {}
diff --git a/xfa/fxfa/parser/cxfa_exobject.cpp b/xfa/fxfa/parser/cxfa_exobject.cpp
index bc9647a..fff1d2e 100644
--- a/xfa/fxfa/parser/cxfa_exobject.cpp
+++ b/xfa/fxfa/parser/cxfa_exobject.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_exobject.h"
 
+#include "fxjs/xfa/cjx_exobject.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
@@ -33,6 +36,7 @@
                 XFA_Element::ExObject,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_ExObject>(this)) {}
 
 CXFA_ExObject::~CXFA_ExObject() {}
diff --git a/xfa/fxfa/parser/cxfa_extras.cpp b/xfa/fxfa/parser/cxfa_extras.cpp
index bf155c7..4609e6f 100644
--- a/xfa/fxfa/parser/cxfa_extras.cpp
+++ b/xfa/fxfa/parser/cxfa_extras.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_extras.h"
 
+#include "fxjs/xfa/cjx_extras.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -28,6 +31,7 @@
                 XFA_Element::Extras,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Extras>(this)) {}
 
 CXFA_Extras::~CXFA_Extras() {}
diff --git a/xfa/fxfa/parser/cxfa_fill.cpp b/xfa/fxfa/parser/cxfa_fill.cpp
index d502003..a26bc89 100644
--- a/xfa/fxfa/parser/cxfa_fill.cpp
+++ b/xfa/fxfa/parser/cxfa_fill.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_fill.h"
 
+#include "fxjs/xfa/cjx_fill.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {
@@ -38,6 +41,7 @@
                 XFA_Element::Fill,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Fill>(this)) {}
 
 CXFA_Fill::~CXFA_Fill() {}
diff --git a/xfa/fxfa/parser/cxfa_filter.cpp b/xfa/fxfa/parser/cxfa_filter.cpp
index 2bb5952..ec6522d 100644
--- a/xfa/fxfa/parser/cxfa_filter.cpp
+++ b/xfa/fxfa/parser/cxfa_filter.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_filter.h"
 
+#include "fxjs/xfa/cjx_filter.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {
@@ -35,6 +38,7 @@
                 XFA_Element::Filter,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Filter>(this)) {}
 
 CXFA_Filter::~CXFA_Filter() {}
diff --git a/xfa/fxfa/parser/cxfa_float.cpp b/xfa/fxfa/parser/cxfa_float.cpp
index 3430a83..83e5749 100644
--- a/xfa/fxfa/parser/cxfa_float.cpp
+++ b/xfa/fxfa/parser/cxfa_float.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_float.h"
 
-#include "fxjs/xfa/cjx_content.h"
+#include "fxjs/xfa/cjx_float.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -31,6 +31,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_Content>(this)) {}
+                pdfium::MakeUnique<CJX_Float>(this)) {}
 
 CXFA_Float::~CXFA_Float() {}
diff --git a/xfa/fxfa/parser/cxfa_font.cpp b/xfa/fxfa/parser/cxfa_font.cpp
index df2c327..eb5c312 100644
--- a/xfa/fxfa/parser/cxfa_font.cpp
+++ b/xfa/fxfa/parser/cxfa_font.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_font.h"
 
+#include "fxjs/xfa/cjx_font.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Fill, 1, 0},
@@ -56,6 +59,7 @@
           XFA_Element::Font,
           kPropertyData,
           kAttributeData,
-          kName) {}
+          kName,
+          pdfium::MakeUnique<CJX_Font>(this)) {}
 
 CXFA_Font::~CXFA_Font() {}
diff --git a/xfa/fxfa/parser/cxfa_format.cpp b/xfa/fxfa/parser/cxfa_format.cpp
index ba90772..ebaaeb0 100644
--- a/xfa/fxfa/parser/cxfa_format.cpp
+++ b/xfa/fxfa/parser/cxfa_format.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_format.h"
 
+#include "fxjs/xfa/cjx_format.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Picture, 1, 0},
@@ -29,6 +32,7 @@
                 XFA_Element::Format,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Format>(this)) {}
 
 CXFA_Format::~CXFA_Format() {}
diff --git a/xfa/fxfa/parser/cxfa_handler.cpp b/xfa/fxfa/parser/cxfa_handler.cpp
index 4a7be94..80f0f81 100644
--- a/xfa/fxfa/parser/cxfa_handler.cpp
+++ b/xfa/fxfa/parser/cxfa_handler.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_handler.h"
 
-#include "fxjs/xfa/cjx_textnode.h"
+#include "fxjs/xfa/cjx_handler.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -32,6 +32,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_TextNode>(this)) {}
+                pdfium::MakeUnique<CJX_Handler>(this)) {}
 
 CXFA_Handler::~CXFA_Handler() {}
diff --git a/xfa/fxfa/parser/cxfa_image.cpp b/xfa/fxfa/parser/cxfa_image.cpp
index 9f7988c..9287381 100644
--- a/xfa/fxfa/parser/cxfa_image.cpp
+++ b/xfa/fxfa/parser/cxfa_image.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_image.h"
 
+#include "fxjs/xfa/cjx_image.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
diff --git a/xfa/fxfa/parser/cxfa_imageedit.cpp b/xfa/fxfa/parser/cxfa_imageedit.cpp
index dd640b7..6f21085 100644
--- a/xfa/fxfa/parser/cxfa_imageedit.cpp
+++ b/xfa/fxfa/parser/cxfa_imageedit.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_imageedit.h"
 
+#include "fxjs/xfa/cjx_imageedit.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
@@ -32,6 +35,7 @@
                 XFA_Element::ImageEdit,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_ImageEdit>(this)) {}
 
 CXFA_ImageEdit::~CXFA_ImageEdit() {}
diff --git a/xfa/fxfa/parser/cxfa_insert.cpp b/xfa/fxfa/parser/cxfa_insert.cpp
index a455d78..998a7f8 100644
--- a/xfa/fxfa/parser/cxfa_insert.cpp
+++ b/xfa/fxfa/parser/cxfa_insert.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_insert.h"
 
-#include "fxjs/xfa/cjx_textnode.h"
+#include "fxjs/xfa/cjx_insert.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -31,6 +31,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_TextNode>(this)) {}
+                pdfium::MakeUnique<CJX_Insert>(this)) {}
 
 CXFA_Insert::~CXFA_Insert() {}
diff --git a/xfa/fxfa/parser/cxfa_integer.cpp b/xfa/fxfa/parser/cxfa_integer.cpp
index 514ee4e..bd263ab 100644
--- a/xfa/fxfa/parser/cxfa_integer.cpp
+++ b/xfa/fxfa/parser/cxfa_integer.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_integer.h"
 
-#include "fxjs/xfa/cjx_content.h"
+#include "fxjs/xfa/cjx_integer.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -32,6 +32,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_Content>(this)) {}
+                pdfium::MakeUnique<CJX_Integer>(this)) {}
 
 CXFA_Integer::~CXFA_Integer() {}
diff --git a/xfa/fxfa/parser/cxfa_issuers.cpp b/xfa/fxfa/parser/cxfa_issuers.cpp
index 33de02a..44c70bc 100644
--- a/xfa/fxfa/parser/cxfa_issuers.cpp
+++ b/xfa/fxfa/parser/cxfa_issuers.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_issuers.h"
 
+#include "fxjs/xfa/cjx_issuers.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -28,6 +31,7 @@
                 XFA_Element::Issuers,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Issuers>(this)) {}
 
 CXFA_Issuers::~CXFA_Issuers() {}
diff --git a/xfa/fxfa/parser/cxfa_items.cpp b/xfa/fxfa/parser/cxfa_items.cpp
index 8276ed4..06feddb 100644
--- a/xfa/fxfa/parser/cxfa_items.cpp
+++ b/xfa/fxfa/parser/cxfa_items.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_items.h"
 
+#include "fxjs/xfa/cjx_items.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -31,6 +34,7 @@
                 XFA_Element::Items,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Items>(this)) {}
 
 CXFA_Items::~CXFA_Items() {}
diff --git a/xfa/fxfa/parser/cxfa_keep.cpp b/xfa/fxfa/parser/cxfa_keep.cpp
index 54121fe..beb22fa 100644
--- a/xfa/fxfa/parser/cxfa_keep.cpp
+++ b/xfa/fxfa/parser/cxfa_keep.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_keep.h"
 
+#include "fxjs/xfa/cjx_keep.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
@@ -34,6 +37,7 @@
                 XFA_Element::Keep,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Keep>(this)) {}
 
 CXFA_Keep::~CXFA_Keep() {}
diff --git a/xfa/fxfa/parser/cxfa_keyusage.cpp b/xfa/fxfa/parser/cxfa_keyusage.cpp
index f12ab04..13054be 100644
--- a/xfa/fxfa/parser/cxfa_keyusage.cpp
+++ b/xfa/fxfa/parser/cxfa_keyusage.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_keyusage.h"
 
+#include "fxjs/xfa/cjx_keyusage.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -37,6 +40,7 @@
                 XFA_Element::KeyUsage,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_KeyUsage>(this)) {}
 
 CXFA_KeyUsage::~CXFA_KeyUsage() {}
diff --git a/xfa/fxfa/parser/cxfa_line.cpp b/xfa/fxfa/parser/cxfa_line.cpp
index dde2165..cc7b6ee 100644
--- a/xfa/fxfa/parser/cxfa_line.cpp
+++ b/xfa/fxfa/parser/cxfa_line.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_line.h"
 
+#include "fxjs/xfa/cjx_line.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Edge, 1, 0},
@@ -32,6 +35,7 @@
                 XFA_Element::Line,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Line>(this)) {}
 
 CXFA_Line::~CXFA_Line() {}
diff --git a/xfa/fxfa/parser/cxfa_linear.cpp b/xfa/fxfa/parser/cxfa_linear.cpp
index 307ab11..5ca2791 100644
--- a/xfa/fxfa/parser/cxfa_linear.cpp
+++ b/xfa/fxfa/parser/cxfa_linear.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_linear.h"
 
+#include "fxjs/xfa/cjx_linear.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0},
@@ -31,6 +34,7 @@
                 XFA_Element::Linear,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Linear>(this)) {}
 
 CXFA_Linear::~CXFA_Linear() {}
diff --git a/xfa/fxfa/parser/cxfa_map.cpp b/xfa/fxfa/parser/cxfa_map.cpp
index adcb879..3e0c041 100644
--- a/xfa/fxfa/parser/cxfa_map.cpp
+++ b/xfa/fxfa/parser/cxfa_map.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_map.h"
 
+#include "fxjs/xfa/cjx_map.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -31,6 +34,7 @@
                 XFA_Element::Map,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Map>(this)) {}
 
 CXFA_Map::~CXFA_Map() {}
diff --git a/xfa/fxfa/parser/cxfa_margin.cpp b/xfa/fxfa/parser/cxfa_margin.cpp
index 6ad52c1..6a50d13 100644
--- a/xfa/fxfa/parser/cxfa_margin.cpp
+++ b/xfa/fxfa/parser/cxfa_margin.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_margin.h"
 
+#include "fxjs/xfa/cjx_margin.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
@@ -32,6 +35,7 @@
                 XFA_Element::Margin,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Margin>(this)) {}
 
 CXFA_Margin::~CXFA_Margin() {}
diff --git a/xfa/fxfa/parser/cxfa_mdp.cpp b/xfa/fxfa/parser/cxfa_mdp.cpp
index 17858b3..b8fa1cd 100644
--- a/xfa/fxfa/parser/cxfa_mdp.cpp
+++ b/xfa/fxfa/parser/cxfa_mdp.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_mdp.h"
 
+#include "fxjs/xfa/cjx_mdp.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -29,6 +32,7 @@
                 XFA_Element::Mdp,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Mdp>(this)) {}
 
 CXFA_Mdp::~CXFA_Mdp() {}
diff --git a/xfa/fxfa/parser/cxfa_medium.cpp b/xfa/fxfa/parser/cxfa_medium.cpp
index e212e21..3fa494a 100644
--- a/xfa/fxfa/parser/cxfa_medium.cpp
+++ b/xfa/fxfa/parser/cxfa_medium.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_medium.h"
 
+#include "fxjs/xfa/cjx_medium.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -36,6 +39,7 @@
                 XFA_Element::Medium,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Medium>(this)) {}
 
 CXFA_Medium::~CXFA_Medium() {}
diff --git a/xfa/fxfa/parser/cxfa_message.cpp b/xfa/fxfa/parser/cxfa_message.cpp
index 4863e30..fa16efd 100644
--- a/xfa/fxfa/parser/cxfa_message.cpp
+++ b/xfa/fxfa/parser/cxfa_message.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_message.h"
 
+#include "fxjs/xfa/cjx_message.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::MsgId, 1, 0},
@@ -32,6 +35,7 @@
           XFA_Element::Message,
           kPropertyData,
           kAttributeData,
-          kName) {}
+          kName,
+          pdfium::MakeUnique<CJX_Message>(this)) {}
 
 CXFA_Message::~CXFA_Message() {}
diff --git a/xfa/fxfa/parser/cxfa_node_statics.cpp b/xfa/fxfa/parser/cxfa_node_statics.cpp
index 75e512e..93860c6 100644
--- a/xfa/fxfa/parser/cxfa_node_statics.cpp
+++ b/xfa/fxfa/parser/cxfa_node_statics.cpp
@@ -1511,9 +1511,6 @@
     case XFA_Element::Delete:
       node = pdfium::MakeUnique<CXFA_Delete>(doc, packet);
       break;
-    case XFA_Element::Deltas:
-      node = pdfium::MakeUnique<CXFA_Deltas>(doc, packet);
-      break;
     case XFA_Element::DigestMethod:
       node = pdfium::MakeUnique<CXFA_DigestMethod>(doc, packet);
       break;
diff --git a/xfa/fxfa/parser/cxfa_numericedit.cpp b/xfa/fxfa/parser/cxfa_numericedit.cpp
index a875b04..5a65c76 100644
--- a/xfa/fxfa/parser/cxfa_numericedit.cpp
+++ b/xfa/fxfa/parser/cxfa_numericedit.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_numericedit.h"
 
+#include "fxjs/xfa/cjx_numericedit.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
@@ -33,6 +36,7 @@
                 XFA_Element::NumericEdit,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_NumericEdit>(this)) {}
 
 CXFA_NumericEdit::~CXFA_NumericEdit() {}
diff --git a/xfa/fxfa/parser/cxfa_occur.cpp b/xfa/fxfa/parser/cxfa_occur.cpp
index 80089f5..82424d6 100644
--- a/xfa/fxfa/parser/cxfa_occur.cpp
+++ b/xfa/fxfa/parser/cxfa_occur.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_occur.h"
 
+#include "fxjs/xfa/cjx_occur.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
@@ -31,6 +34,7 @@
                 XFA_Element::Occur,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Occur>(this)) {}
 
 CXFA_Occur::~CXFA_Occur() {}
diff --git a/xfa/fxfa/parser/cxfa_oid.cpp b/xfa/fxfa/parser/cxfa_oid.cpp
index ad61086..7202e40 100644
--- a/xfa/fxfa/parser/cxfa_oid.cpp
+++ b/xfa/fxfa/parser/cxfa_oid.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_oid.h"
 
-#include "fxjs/xfa/cjx_textnode.h"
+#include "fxjs/xfa/cjx_oid.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -31,6 +31,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_TextNode>(this)) {}
+                pdfium::MakeUnique<CJX_Oid>(this)) {}
 
 CXFA_Oid::~CXFA_Oid() {}
diff --git a/xfa/fxfa/parser/cxfa_oids.cpp b/xfa/fxfa/parser/cxfa_oids.cpp
index 9b72df0..31d2a6d 100644
--- a/xfa/fxfa/parser/cxfa_oids.cpp
+++ b/xfa/fxfa/parser/cxfa_oids.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_oids.h"
 
+#include "fxjs/xfa/cjx_oids.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -28,6 +31,7 @@
                 XFA_Element::Oids,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Oids>(this)) {}
 
 CXFA_Oids::~CXFA_Oids() {}
diff --git a/xfa/fxfa/parser/cxfa_operation.cpp b/xfa/fxfa/parser/cxfa_operation.cpp
index 7364e96..cc92d8c 100644
--- a/xfa/fxfa/parser/cxfa_operation.cpp
+++ b/xfa/fxfa/parser/cxfa_operation.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_operation.h"
 
-#include "fxjs/xfa/cjx_textnode.h"
+#include "fxjs/xfa/cjx_operation.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -33,6 +33,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_TextNode>(this)) {}
+                pdfium::MakeUnique<CJX_Operation>(this)) {}
 
 CXFA_Operation::~CXFA_Operation() {}
diff --git a/xfa/fxfa/parser/cxfa_overflow.cpp b/xfa/fxfa/parser/cxfa_overflow.cpp
index 8f96215..2589714 100644
--- a/xfa/fxfa/parser/cxfa_overflow.cpp
+++ b/xfa/fxfa/parser/cxfa_overflow.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_overflow.h"
 
+#include "fxjs/xfa/cjx_overflow.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -29,6 +32,7 @@
                 XFA_Element::Overflow,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Overflow>(this)) {}
 
 CXFA_Overflow::~CXFA_Overflow() {}
diff --git a/xfa/fxfa/parser/cxfa_pagearea.cpp b/xfa/fxfa/parser/cxfa_pagearea.cpp
index ef2ba9e..f82b344 100644
--- a/xfa/fxfa/parser/cxfa_pagearea.cpp
+++ b/xfa/fxfa/parser/cxfa_pagearea.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_pagearea.h"
 
-#include "fxjs/xfa/cjx_container.h"
+#include "fxjs/xfa/cjx_pagearea.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -45,6 +45,6 @@
                 kPropertyData,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_Container>(this)) {}
+                pdfium::MakeUnique<CJX_PageArea>(this)) {}
 
 CXFA_PageArea::~CXFA_PageArea() {}
diff --git a/xfa/fxfa/parser/cxfa_pageset.cpp b/xfa/fxfa/parser/cxfa_pageset.cpp
index 536fec1..2fea618 100644
--- a/xfa/fxfa/parser/cxfa_pageset.cpp
+++ b/xfa/fxfa/parser/cxfa_pageset.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_pageset.h"
 
-#include "fxjs/xfa/cjx_container.h"
+#include "fxjs/xfa/cjx_pageset.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -39,6 +39,6 @@
                 kPropertyData,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_Container>(this)) {}
+                pdfium::MakeUnique<CJX_PageSet>(this)) {}
 
 CXFA_PageSet::~CXFA_PageSet() {}
diff --git a/xfa/fxfa/parser/cxfa_para.cpp b/xfa/fxfa/parser/cxfa_para.cpp
index a1e4b8c..fa91eb6 100644
--- a/xfa/fxfa/parser/cxfa_para.cpp
+++ b/xfa/fxfa/parser/cxfa_para.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_para.h"
 
+#include "fxjs/xfa/cjx_para.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {
@@ -45,6 +48,7 @@
                 XFA_Element::Para,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Para>(this)) {}
 
 CXFA_Para::~CXFA_Para() {}
diff --git a/xfa/fxfa/parser/cxfa_password.cpp b/xfa/fxfa/parser/cxfa_password.cpp
index d6f70fb..3b3f719 100644
--- a/xfa/fxfa/parser/cxfa_password.cpp
+++ b/xfa/fxfa/parser/cxfa_password.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_password.h"
 
-#include "fxjs/xfa/cjx_textnode.h"
+#include "fxjs/xfa/cjx_password.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -31,6 +31,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_TextNode>(this)) {}
+                pdfium::MakeUnique<CJX_Password>(this)) {}
 
 CXFA_Password::~CXFA_Password() {}
diff --git a/xfa/fxfa/parser/cxfa_passwordedit.cpp b/xfa/fxfa/parser/cxfa_passwordedit.cpp
index dad5a74..e86cd13 100644
--- a/xfa/fxfa/parser/cxfa_passwordedit.cpp
+++ b/xfa/fxfa/parser/cxfa_passwordedit.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_passwordedit.h"
 
+#include "fxjs/xfa/cjx_passwordedit.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
diff --git a/xfa/fxfa/parser/cxfa_pattern.cpp b/xfa/fxfa/parser/cxfa_pattern.cpp
index af39958..7328fd2 100644
--- a/xfa/fxfa/parser/cxfa_pattern.cpp
+++ b/xfa/fxfa/parser/cxfa_pattern.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_pattern.h"
 
+#include "fxjs/xfa/cjx_pattern.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0},
@@ -31,6 +34,7 @@
                 XFA_Element::Pattern,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Pattern>(this)) {}
 
 CXFA_Pattern::~CXFA_Pattern() {}
diff --git a/xfa/fxfa/parser/cxfa_picture.cpp b/xfa/fxfa/parser/cxfa_picture.cpp
index 1947ddf..4863a77 100644
--- a/xfa/fxfa/parser/cxfa_picture.cpp
+++ b/xfa/fxfa/parser/cxfa_picture.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_picture.h"
 
+#include "fxjs/xfa/cjx_picture.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -29,6 +32,7 @@
           XFA_Element::Picture,
           nullptr,
           kAttributeData,
-          kName) {}
+          kName,
+          pdfium::MakeUnique<CJX_Picture>(this)) {}
 
 CXFA_Picture::~CXFA_Picture() {}
diff --git a/xfa/fxfa/parser/cxfa_query.cpp b/xfa/fxfa/parser/cxfa_query.cpp
index 90ad891..5e18565 100644
--- a/xfa/fxfa/parser/cxfa_query.cpp
+++ b/xfa/fxfa/parser/cxfa_query.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_query.h"
 
+#include "fxjs/xfa/cjx_query.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::RecordSet, 1, 0},
@@ -32,6 +35,7 @@
                 XFA_Element::Query,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Query>(this)) {}
 
 CXFA_Query::~CXFA_Query() {}
diff --git a/xfa/fxfa/parser/cxfa_radial.cpp b/xfa/fxfa/parser/cxfa_radial.cpp
index 7767970..5630943 100644
--- a/xfa/fxfa/parser/cxfa_radial.cpp
+++ b/xfa/fxfa/parser/cxfa_radial.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_radial.h"
 
+#include "fxjs/xfa/cjx_radial.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0},
@@ -31,6 +34,7 @@
                 XFA_Element::Radial,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Radial>(this)) {}
 
 CXFA_Radial::~CXFA_Radial() {}
diff --git a/xfa/fxfa/parser/cxfa_reason.cpp b/xfa/fxfa/parser/cxfa_reason.cpp
index befad7d..625ede9 100644
--- a/xfa/fxfa/parser/cxfa_reason.cpp
+++ b/xfa/fxfa/parser/cxfa_reason.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_reason.h"
 
-#include "fxjs/xfa/cjx_textnode.h"
+#include "fxjs/xfa/cjx_reason.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -31,6 +31,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_TextNode>(this)) {}
+                pdfium::MakeUnique<CJX_Reason>(this)) {}
 
 CXFA_Reason::~CXFA_Reason() {}
diff --git a/xfa/fxfa/parser/cxfa_reasons.cpp b/xfa/fxfa/parser/cxfa_reasons.cpp
index d1229ca..bd3d761 100644
--- a/xfa/fxfa/parser/cxfa_reasons.cpp
+++ b/xfa/fxfa/parser/cxfa_reasons.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_reasons.h"
 
+#include "fxjs/xfa/cjx_reasons.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -28,6 +31,7 @@
                 XFA_Element::Reasons,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Reasons>(this)) {}
 
 CXFA_Reasons::~CXFA_Reasons() {}
diff --git a/xfa/fxfa/parser/cxfa_recordset.cpp b/xfa/fxfa/parser/cxfa_recordset.cpp
index 807e6cc6..a90c589 100644
--- a/xfa/fxfa/parser/cxfa_recordset.cpp
+++ b/xfa/fxfa/parser/cxfa_recordset.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_recordset.h"
 
+#include "fxjs/xfa/cjx_recordset.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -38,6 +41,7 @@
                 XFA_Element::RecordSet,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_RecordSet>(this)) {}
 
 CXFA_RecordSet::~CXFA_RecordSet() {}
diff --git a/xfa/fxfa/parser/cxfa_rectangle.cpp b/xfa/fxfa/parser/cxfa_rectangle.cpp
index b23e8e9..c3efcfd 100644
--- a/xfa/fxfa/parser/cxfa_rectangle.cpp
+++ b/xfa/fxfa/parser/cxfa_rectangle.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_rectangle.h"
 
+#include "fxjs/xfa/cjx_rectangle.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Edge, 4, 0},
@@ -32,6 +35,7 @@
                 XFA_Element::Rectangle,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Rectangle>(this)) {}
 
 CXFA_Rectangle::~CXFA_Rectangle() {}
diff --git a/xfa/fxfa/parser/cxfa_ref.cpp b/xfa/fxfa/parser/cxfa_ref.cpp
index eea1292..0d7df44 100644
--- a/xfa/fxfa/parser/cxfa_ref.cpp
+++ b/xfa/fxfa/parser/cxfa_ref.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_ref.h"
 
-#include "fxjs/xfa/cjx_textnode.h"
+#include "fxjs/xfa/cjx_ref.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -30,6 +30,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_TextNode>(this)) {}
+                pdfium::MakeUnique<CJX_Ref>(this)) {}
 
 CXFA_Ref::~CXFA_Ref() {}
diff --git a/xfa/fxfa/parser/cxfa_rootelement.cpp b/xfa/fxfa/parser/cxfa_rootelement.cpp
index 5ba4ed3..a9b8631 100644
--- a/xfa/fxfa/parser/cxfa_rootelement.cpp
+++ b/xfa/fxfa/parser/cxfa_rootelement.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_rootelement.h"
 
-#include "fxjs/xfa/cjx_textnode.h"
+#include "fxjs/xfa/cjx_rootelement.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -31,6 +31,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_TextNode>(this)) {}
+                pdfium::MakeUnique<CJX_RootElement>(this)) {}
 
 CXFA_RootElement::~CXFA_RootElement() {}
diff --git a/xfa/fxfa/parser/cxfa_script.cpp b/xfa/fxfa/parser/cxfa_script.cpp
index 590d78c..ab317f3 100644
--- a/xfa/fxfa/parser/cxfa_script.cpp
+++ b/xfa/fxfa/parser/cxfa_script.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_script.h"
 
+#include "fxjs/xfa/cjx_script.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {
@@ -39,6 +42,7 @@
           XFA_Element::Script,
           kPropertyData,
           kAttributeData,
-          kName) {}
+          kName,
+          pdfium::MakeUnique<CJX_Script>(this)) {}
 
 CXFA_Script::~CXFA_Script() {}
diff --git a/xfa/fxfa/parser/cxfa_select.cpp b/xfa/fxfa/parser/cxfa_select.cpp
index 7417015..92eca07 100644
--- a/xfa/fxfa/parser/cxfa_select.cpp
+++ b/xfa/fxfa/parser/cxfa_select.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_select.h"
 
-#include "fxjs/xfa/cjx_textnode.h"
+#include "fxjs/xfa/cjx_select.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -31,6 +31,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_TextNode>(this)) {}
+                pdfium::MakeUnique<CJX_Select>(this)) {}
 
 CXFA_Select::~CXFA_Select() {}
diff --git a/xfa/fxfa/parser/cxfa_setproperty.cpp b/xfa/fxfa/parser/cxfa_setproperty.cpp
index e98505b..85d631b 100644
--- a/xfa/fxfa/parser/cxfa_setproperty.cpp
+++ b/xfa/fxfa/parser/cxfa_setproperty.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_setproperty.h"
 
+#include "fxjs/xfa/cjx_setproperty.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -26,6 +29,7 @@
                 XFA_Element::SetProperty,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_SetProperty>(this)) {}
 
 CXFA_SetProperty::~CXFA_SetProperty() {}
diff --git a/xfa/fxfa/parser/cxfa_signature.cpp b/xfa/fxfa/parser/cxfa_signature.cpp
index 7b8c892..baee044 100644
--- a/xfa/fxfa/parser/cxfa_signature.cpp
+++ b/xfa/fxfa/parser/cxfa_signature.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_signature.h"
 
+#include "fxjs/xfa/cjx_signature.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {
@@ -32,6 +35,7 @@
                 XFA_Element::Signature,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Signature>(this)) {}
 
 CXFA_Signature::~CXFA_Signature() {}
diff --git a/xfa/fxfa/parser/cxfa_signatureproperties.cpp b/xfa/fxfa/parser/cxfa_signatureproperties.cpp
index c18706a..c710cb4 100644
--- a/xfa/fxfa/parser/cxfa_signatureproperties.cpp
+++ b/xfa/fxfa/parser/cxfa_signatureproperties.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_signatureproperties.h"
 
+#include "fxjs/xfa/cjx_signatureproperties.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -26,6 +29,7 @@
                 XFA_Element::SignatureProperties,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_SignatureProperties>(this)) {}
 
 CXFA_SignatureProperties::~CXFA_SignatureProperties() {}
diff --git a/xfa/fxfa/parser/cxfa_signdata.cpp b/xfa/fxfa/parser/cxfa_signdata.cpp
index 82924d5..796ae5c 100644
--- a/xfa/fxfa/parser/cxfa_signdata.cpp
+++ b/xfa/fxfa/parser/cxfa_signdata.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_signdata.h"
 
+#include "fxjs/xfa/cjx_signdata.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Filter, 1, 0},
@@ -33,6 +36,7 @@
                 XFA_Element::SignData,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_SignData>(this)) {}
 
 CXFA_SignData::~CXFA_SignData() {}
diff --git a/xfa/fxfa/parser/cxfa_signing.cpp b/xfa/fxfa/parser/cxfa_signing.cpp
index 356d8fc..251e294 100644
--- a/xfa/fxfa/parser/cxfa_signing.cpp
+++ b/xfa/fxfa/parser/cxfa_signing.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_signing.h"
 
+#include "fxjs/xfa/cjx_signing.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -28,6 +31,7 @@
                 XFA_Element::Signing,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Signing>(this)) {}
 
 CXFA_Signing::~CXFA_Signing() {}
diff --git a/xfa/fxfa/parser/cxfa_soapaction.cpp b/xfa/fxfa/parser/cxfa_soapaction.cpp
index 49c0b44..b53a653 100644
--- a/xfa/fxfa/parser/cxfa_soapaction.cpp
+++ b/xfa/fxfa/parser/cxfa_soapaction.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_soapaction.h"
 
-#include "fxjs/xfa/cjx_textnode.h"
+#include "fxjs/xfa/cjx_soapaction.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -31,6 +31,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_TextNode>(this)) {}
+                pdfium::MakeUnique<CJX_SoapAction>(this)) {}
 
 CXFA_SoapAction::~CXFA_SoapAction() {}
diff --git a/xfa/fxfa/parser/cxfa_soapaddress.cpp b/xfa/fxfa/parser/cxfa_soapaddress.cpp
index 9974a48..39f91a5 100644
--- a/xfa/fxfa/parser/cxfa_soapaddress.cpp
+++ b/xfa/fxfa/parser/cxfa_soapaddress.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_soapaddress.h"
 
-#include "fxjs/xfa/cjx_textnode.h"
+#include "fxjs/xfa/cjx_soapaddress.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -31,6 +31,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_TextNode>(this)) {}
+                pdfium::MakeUnique<CJX_SoapAddress>(this)) {}
 
 CXFA_SoapAddress::~CXFA_SoapAddress() {}
diff --git a/xfa/fxfa/parser/cxfa_solid.cpp b/xfa/fxfa/parser/cxfa_solid.cpp
index 4a39ffb..4a20194 100644
--- a/xfa/fxfa/parser/cxfa_solid.cpp
+++ b/xfa/fxfa/parser/cxfa_solid.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_solid.h"
 
+#include "fxjs/xfa/cjx_solid.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
@@ -28,6 +31,7 @@
                 XFA_Element::Solid,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Solid>(this)) {}
 
 CXFA_Solid::~CXFA_Solid() {}
diff --git a/xfa/fxfa/parser/cxfa_sourceset.cpp b/xfa/fxfa/parser/cxfa_sourceset.cpp
index 79a498d..3deabc6 100644
--- a/xfa/fxfa/parser/cxfa_sourceset.cpp
+++ b/xfa/fxfa/parser/cxfa_sourceset.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_sourceset.h"
 
-#include "fxjs/xfa/cjx_model.h"
+#include "fxjs/xfa/cjx_sourceset.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -31,6 +31,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_Model>(this)) {}
+                pdfium::MakeUnique<CJX_SourceSet>(this)) {}
 
 CXFA_SourceSet::~CXFA_SourceSet() {}
diff --git a/xfa/fxfa/parser/cxfa_speak.cpp b/xfa/fxfa/parser/cxfa_speak.cpp
index 7b3fa36..ce05682 100644
--- a/xfa/fxfa/parser/cxfa_speak.cpp
+++ b/xfa/fxfa/parser/cxfa_speak.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_speak.h"
 
-#include "fxjs/xfa/cjx_textnode.h"
+#include "fxjs/xfa/cjx_speak.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -34,6 +34,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_TextNode>(this)) {}
+                pdfium::MakeUnique<CJX_Speak>(this)) {}
 
 CXFA_Speak::~CXFA_Speak() {}
diff --git a/xfa/fxfa/parser/cxfa_stipple.cpp b/xfa/fxfa/parser/cxfa_stipple.cpp
index 5cf4bac..17b64fa 100644
--- a/xfa/fxfa/parser/cxfa_stipple.cpp
+++ b/xfa/fxfa/parser/cxfa_stipple.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_stipple.h"
 
+#include "fxjs/xfa/cjx_stipple.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Color, 1, 0},
@@ -30,6 +33,7 @@
                 XFA_Element::Stipple,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Stipple>(this)) {}
 
 CXFA_Stipple::~CXFA_Stipple() {}
diff --git a/xfa/fxfa/parser/cxfa_subformset.cpp b/xfa/fxfa/parser/cxfa_subformset.cpp
index d29cbd4..0c9c3b0 100644
--- a/xfa/fxfa/parser/cxfa_subformset.cpp
+++ b/xfa/fxfa/parser/cxfa_subformset.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_subformset.h"
 
-#include "fxjs/xfa/cjx_container.h"
+#include "fxjs/xfa/cjx_subformset.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -39,6 +39,6 @@
                 kPropertyData,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_Container>(this)) {}
+                pdfium::MakeUnique<CJX_SubformSet>(this)) {}
 
 CXFA_SubformSet::~CXFA_SubformSet() {}
diff --git a/xfa/fxfa/parser/cxfa_subjectdn.cpp b/xfa/fxfa/parser/cxfa_subjectdn.cpp
index d58f4d5..29ab2fa 100644
--- a/xfa/fxfa/parser/cxfa_subjectdn.cpp
+++ b/xfa/fxfa/parser/cxfa_subjectdn.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_subjectdn.h"
 
+#include "fxjs/xfa/cjx_subjectdn.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -28,6 +31,7 @@
                 XFA_Element::SubjectDN,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_SubjectDN>(this)) {}
 
 CXFA_SubjectDN::~CXFA_SubjectDN() {}
diff --git a/xfa/fxfa/parser/cxfa_subjectdns.cpp b/xfa/fxfa/parser/cxfa_subjectdns.cpp
index df65a80..8f714b0 100644
--- a/xfa/fxfa/parser/cxfa_subjectdns.cpp
+++ b/xfa/fxfa/parser/cxfa_subjectdns.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_subjectdns.h"
 
+#include "fxjs/xfa/cjx_subjectdns.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
@@ -28,6 +31,7 @@
                 XFA_Element::SubjectDNs,
                 nullptr,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_SubjectDNs>(this)) {}
 
 CXFA_SubjectDNs::~CXFA_SubjectDNs() {}
diff --git a/xfa/fxfa/parser/cxfa_submit.cpp b/xfa/fxfa/parser/cxfa_submit.cpp
index 60717b9..04255f8 100644
--- a/xfa/fxfa/parser/cxfa_submit.cpp
+++ b/xfa/fxfa/parser/cxfa_submit.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_submit.h"
 
+#include "fxjs/xfa/cjx_submit.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Encrypt, 1, 0},
@@ -34,6 +37,7 @@
                 XFA_Element::Submit,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Submit>(this)) {}
 
 CXFA_Submit::~CXFA_Submit() {}
diff --git a/xfa/fxfa/parser/cxfa_text.cpp b/xfa/fxfa/parser/cxfa_text.cpp
index 883cdac..e890aca 100644
--- a/xfa/fxfa/parser/cxfa_text.cpp
+++ b/xfa/fxfa/parser/cxfa_text.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_text.h"
 
-#include "fxjs/xfa/cjx_content.h"
+#include "fxjs/xfa/cjx_text.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -34,6 +34,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_Content>(this)) {}
+                pdfium::MakeUnique<CJX_Text>(this)) {}
 
 CXFA_Text::~CXFA_Text() {}
diff --git a/xfa/fxfa/parser/cxfa_textedit.cpp b/xfa/fxfa/parser/cxfa_textedit.cpp
index 7171af9..3b2767a 100644
--- a/xfa/fxfa/parser/cxfa_textedit.cpp
+++ b/xfa/fxfa/parser/cxfa_textedit.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_textedit.h"
 
+#include "fxjs/xfa/cjx_textedit.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Margin, 1, 0},
@@ -37,6 +40,7 @@
                 XFA_Element::TextEdit,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_TextEdit>(this)) {}
 
 CXFA_TextEdit::~CXFA_TextEdit() {}
diff --git a/xfa/fxfa/parser/cxfa_time.cpp b/xfa/fxfa/parser/cxfa_time.cpp
index 808ee83..f3a64ce 100644
--- a/xfa/fxfa/parser/cxfa_time.cpp
+++ b/xfa/fxfa/parser/cxfa_time.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_time.h"
 
-#include "fxjs/xfa/cjx_content.h"
+#include "fxjs/xfa/cjx_time.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -31,6 +31,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_Content>(this)) {}
+                pdfium::MakeUnique<CJX_Time>(this)) {}
 
 CXFA_Time::~CXFA_Time() {}
diff --git a/xfa/fxfa/parser/cxfa_timestamp.cpp b/xfa/fxfa/parser/cxfa_timestamp.cpp
index 1d286ed..1c86961 100644
--- a/xfa/fxfa/parser/cxfa_timestamp.cpp
+++ b/xfa/fxfa/parser/cxfa_timestamp.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_timestamp.h"
 
+#include "fxjs/xfa/cjx_timestamp.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::AttributeData kAttributeData[] = {
diff --git a/xfa/fxfa/parser/cxfa_tooltip.cpp b/xfa/fxfa/parser/cxfa_tooltip.cpp
index 4abcdb9..04f27c9 100644
--- a/xfa/fxfa/parser/cxfa_tooltip.cpp
+++ b/xfa/fxfa/parser/cxfa_tooltip.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_tooltip.h"
 
-#include "fxjs/xfa/cjx_textnode.h"
+#include "fxjs/xfa/cjx_tooltip.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -31,6 +31,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_TextNode>(this)) {}
+                pdfium::MakeUnique<CJX_ToolTip>(this)) {}
 
 CXFA_ToolTip::~CXFA_ToolTip() {}
diff --git a/xfa/fxfa/parser/cxfa_traversal.cpp b/xfa/fxfa/parser/cxfa_traversal.cpp
index 82a2845..b5ffd3f 100644
--- a/xfa/fxfa/parser/cxfa_traversal.cpp
+++ b/xfa/fxfa/parser/cxfa_traversal.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_traversal.h"
 
+#include "fxjs/xfa/cjx_traversal.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Extras, 1, 0},
@@ -28,6 +31,7 @@
                 XFA_Element::Traversal,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Traversal>(this)) {}
 
 CXFA_Traversal::~CXFA_Traversal() {}
diff --git a/xfa/fxfa/parser/cxfa_traverse.cpp b/xfa/fxfa/parser/cxfa_traverse.cpp
index ad01901..d771b37 100644
--- a/xfa/fxfa/parser/cxfa_traverse.cpp
+++ b/xfa/fxfa/parser/cxfa_traverse.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_traverse.h"
 
+#include "fxjs/xfa/cjx_traverse.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Script, 1, 0},
@@ -32,6 +35,7 @@
                 XFA_Element::Traverse,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Traverse>(this)) {}
 
 CXFA_Traverse::~CXFA_Traverse() {}
diff --git a/xfa/fxfa/parser/cxfa_ui.cpp b/xfa/fxfa/parser/cxfa_ui.cpp
index fabb853..883e79a 100644
--- a/xfa/fxfa/parser/cxfa_ui.cpp
+++ b/xfa/fxfa/parser/cxfa_ui.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_ui.h"
 
+#include "fxjs/xfa/cjx_ui.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {
@@ -42,6 +45,7 @@
                 XFA_Element::Ui,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Ui>(this)) {}
 
 CXFA_Ui::~CXFA_Ui() {}
diff --git a/xfa/fxfa/parser/cxfa_update.cpp b/xfa/fxfa/parser/cxfa_update.cpp
index 8c5f6b4..986e110 100644
--- a/xfa/fxfa/parser/cxfa_update.cpp
+++ b/xfa/fxfa/parser/cxfa_update.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_update.h"
 
-#include "fxjs/xfa/cjx_textnode.h"
+#include "fxjs/xfa/cjx_update.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -31,6 +31,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_TextNode>(this)) {}
+                pdfium::MakeUnique<CJX_Update>(this)) {}
 
 CXFA_Update::~CXFA_Update() {}
diff --git a/xfa/fxfa/parser/cxfa_uri.cpp b/xfa/fxfa/parser/cxfa_uri.cpp
index 2732ea6..96cc3ec 100644
--- a/xfa/fxfa/parser/cxfa_uri.cpp
+++ b/xfa/fxfa/parser/cxfa_uri.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_uri.h"
 
-#include "fxjs/xfa/cjx_textnode.h"
+#include "fxjs/xfa/cjx_uri.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -33,6 +33,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_TextNode>(this)) {}
+                pdfium::MakeUnique<CJX_Uri>(this)) {}
 
 CXFA_Uri::~CXFA_Uri() {}
diff --git a/xfa/fxfa/parser/cxfa_user.cpp b/xfa/fxfa/parser/cxfa_user.cpp
index 7a31c4b..09ec608 100644
--- a/xfa/fxfa/parser/cxfa_user.cpp
+++ b/xfa/fxfa/parser/cxfa_user.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_user.h"
 
-#include "fxjs/xfa/cjx_textnode.h"
+#include "fxjs/xfa/cjx_user.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -31,6 +31,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_TextNode>(this)) {}
+                pdfium::MakeUnique<CJX_User>(this)) {}
 
 CXFA_User::~CXFA_User() {}
diff --git a/xfa/fxfa/parser/cxfa_validate.cpp b/xfa/fxfa/parser/cxfa_validate.cpp
index 545491f..b532067 100644
--- a/xfa/fxfa/parser/cxfa_validate.cpp
+++ b/xfa/fxfa/parser/cxfa_validate.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_validate.h"
 
+#include "fxjs/xfa/cjx_validate.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Message, 1, 0},
@@ -40,6 +43,7 @@
           XFA_Element::Validate,
           kPropertyData,
           kAttributeData,
-          kName) {}
+          kName,
+          pdfium::MakeUnique<CJX_Validate>(this)) {}
 
 CXFA_Validate::~CXFA_Validate() {}
diff --git a/xfa/fxfa/parser/cxfa_value.cpp b/xfa/fxfa/parser/cxfa_value.cpp
index a97ac35..4de833a 100644
--- a/xfa/fxfa/parser/cxfa_value.cpp
+++ b/xfa/fxfa/parser/cxfa_value.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_value.h"
 
+#include "fxjs/xfa/cjx_value.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {
@@ -43,6 +46,7 @@
                 XFA_Element::Value,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_Value>(this)) {}
 
 CXFA_Value::~CXFA_Value() {}
diff --git a/xfa/fxfa/parser/cxfa_variables.cpp b/xfa/fxfa/parser/cxfa_variables.cpp
index 157c294..1e3e751 100644
--- a/xfa/fxfa/parser/cxfa_variables.cpp
+++ b/xfa/fxfa/parser/cxfa_variables.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_variables.h"
 
-#include "fxjs/xfa/cjx_container.h"
+#include "fxjs/xfa/cjx_variables.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -30,6 +30,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_Container>(this)) {}
+                pdfium::MakeUnique<CJX_Variables>(this)) {}
 
 CXFA_Variables::~CXFA_Variables() {}
diff --git a/xfa/fxfa/parser/cxfa_wsdladdress.cpp b/xfa/fxfa/parser/cxfa_wsdladdress.cpp
index 2a27cbf..239bb66 100644
--- a/xfa/fxfa/parser/cxfa_wsdladdress.cpp
+++ b/xfa/fxfa/parser/cxfa_wsdladdress.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_wsdladdress.h"
 
-#include "fxjs/xfa/cjx_textnode.h"
+#include "fxjs/xfa/cjx_wsdladdress.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -31,6 +31,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_TextNode>(this)) {}
+                pdfium::MakeUnique<CJX_WsdlAddress>(this)) {}
 
 CXFA_WsdlAddress::~CXFA_WsdlAddress() {}
diff --git a/xfa/fxfa/parser/cxfa_xfa.cpp b/xfa/fxfa/parser/cxfa_xfa.cpp
index 0865829..7eab898 100644
--- a/xfa/fxfa/parser/cxfa_xfa.cpp
+++ b/xfa/fxfa/parser/cxfa_xfa.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/parser/cxfa_xfa.h"
 
-#include "fxjs/xfa/cjx_model.h"
+#include "fxjs/xfa/cjx_xfa.h"
 #include "third_party/base/ptr_util.h"
 
 namespace {
@@ -29,6 +29,6 @@
                 nullptr,
                 kAttributeData,
                 kName,
-                pdfium::MakeUnique<CJX_Model>(this)) {}
+                pdfium::MakeUnique<CJX_Xfa>(this)) {}
 
 CXFA_Xfa::~CXFA_Xfa() {}
diff --git a/xfa/fxfa/parser/cxfa_xmlconnection.cpp b/xfa/fxfa/parser/cxfa_xmlconnection.cpp
index 7d341bf..df05771 100644
--- a/xfa/fxfa/parser/cxfa_xmlconnection.cpp
+++ b/xfa/fxfa/parser/cxfa_xmlconnection.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_xmlconnection.h"
 
+#include "fxjs/xfa/cjx_xmlconnection.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {{XFA_Element::Uri, 1, 0},
@@ -28,6 +31,7 @@
                 XFA_Element::XmlConnection,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_XmlConnection>(this)) {}
 
 CXFA_XmlConnection::~CXFA_XmlConnection() {}
diff --git a/xfa/fxfa/parser/cxfa_xsdconnection.cpp b/xfa/fxfa/parser/cxfa_xsdconnection.cpp
index d0453d1..7b0de0d 100644
--- a/xfa/fxfa/parser/cxfa_xsdconnection.cpp
+++ b/xfa/fxfa/parser/cxfa_xsdconnection.cpp
@@ -6,6 +6,9 @@
 
 #include "xfa/fxfa/parser/cxfa_xsdconnection.h"
 
+#include "fxjs/xfa/cjx_xsdconnection.h"
+#include "third_party/base/ptr_util.h"
+
 namespace {
 
 const CXFA_Node::PropertyData kPropertyData[] = {
@@ -30,6 +33,7 @@
                 XFA_Element::XsdConnection,
                 kPropertyData,
                 kAttributeData,
-                kName) {}
+                kName,
+                pdfium::MakeUnique<CJX_XsdConnection>(this)) {}
 
 CXFA_XsdConnection::~CXFA_XsdConnection() {}
diff --git a/xfa/fxfa/parser/xfa_basic_data_element_script.cpp b/xfa/fxfa/parser/xfa_basic_data_element_script.cpp
index a56ba19..80a2bf3 100644
--- a/xfa/fxfa/parser/xfa_basic_data_element_script.cpp
+++ b/xfa/fxfa/parser/xfa_basic_data_element_script.cpp
@@ -6,146 +6,520 @@
 
 #include "xfa/fxfa/parser/xfa_basic_data.h"
 
+#include "fxjs/xfa/cjx_arc.h"
+#include "fxjs/xfa/cjx_area.h"
+#include "fxjs/xfa/cjx_assist.h"
+#include "fxjs/xfa/cjx_barcode.h"
+#include "fxjs/xfa/cjx_bind.h"
+#include "fxjs/xfa/cjx_binditems.h"
+#include "fxjs/xfa/cjx_bookend.h"
+#include "fxjs/xfa/cjx_boolean.h"
+#include "fxjs/xfa/cjx_border.h"
+#include "fxjs/xfa/cjx_break.h"
+#include "fxjs/xfa/cjx_breakafter.h"
+#include "fxjs/xfa/cjx_breakbefore.h"
+#include "fxjs/xfa/cjx_button.h"
+#include "fxjs/xfa/cjx_calculate.h"
+#include "fxjs/xfa/cjx_caption.h"
+#include "fxjs/xfa/cjx_certificate.h"
+#include "fxjs/xfa/cjx_certificates.h"
+#include "fxjs/xfa/cjx_checkbutton.h"
+#include "fxjs/xfa/cjx_choicelist.h"
+#include "fxjs/xfa/cjx_color.h"
+#include "fxjs/xfa/cjx_comb.h"
+#include "fxjs/xfa/cjx_command.h"
+#include "fxjs/xfa/cjx_connect.h"
+#include "fxjs/xfa/cjx_connectstring.h"
+#include "fxjs/xfa/cjx_contentarea.h"
+#include "fxjs/xfa/cjx_corner.h"
+#include "fxjs/xfa/cjx_datavalue.h"
 #include "fxjs/xfa/cjx_datawindow.h"
+#include "fxjs/xfa/cjx_date.h"
+#include "fxjs/xfa/cjx_datetime.h"
+#include "fxjs/xfa/cjx_datetimeedit.h"
+#include "fxjs/xfa/cjx_decimal.h"
+#include "fxjs/xfa/cjx_defaultui.h"
+#include "fxjs/xfa/cjx_delete.h"
+#include "fxjs/xfa/cjx_delta.h"
+#include "fxjs/xfa/cjx_desc.h"
+#include "fxjs/xfa/cjx_digestmethod.h"
+#include "fxjs/xfa/cjx_digestmethods.h"
+#include "fxjs/xfa/cjx_draw.h"
+#include "fxjs/xfa/cjx_edge.h"
+#include "fxjs/xfa/cjx_encoding.h"
+#include "fxjs/xfa/cjx_encodings.h"
+#include "fxjs/xfa/cjx_encrypt.h"
+#include "fxjs/xfa/cjx_event.h"
 #include "fxjs/xfa/cjx_eventpseudomodel.h"
+#include "fxjs/xfa/cjx_exclgroup.h"
+#include "fxjs/xfa/cjx_exdata.h"
+#include "fxjs/xfa/cjx_execute.h"
+#include "fxjs/xfa/cjx_exobject.h"
+#include "fxjs/xfa/cjx_extras.h"
+#include "fxjs/xfa/cjx_field.h"
+#include "fxjs/xfa/cjx_fill.h"
+#include "fxjs/xfa/cjx_filter.h"
+#include "fxjs/xfa/cjx_float.h"
+#include "fxjs/xfa/cjx_font.h"
+#include "fxjs/xfa/cjx_format.h"
+#include "fxjs/xfa/cjx_handler.h"
 #include "fxjs/xfa/cjx_hostpseudomodel.h"
+#include "fxjs/xfa/cjx_image.h"
+#include "fxjs/xfa/cjx_imageedit.h"
+#include "fxjs/xfa/cjx_insert.h"
+#include "fxjs/xfa/cjx_instancemanager.h"
+#include "fxjs/xfa/cjx_integer.h"
+#include "fxjs/xfa/cjx_issuers.h"
+#include "fxjs/xfa/cjx_items.h"
+#include "fxjs/xfa/cjx_keep.h"
+#include "fxjs/xfa/cjx_keyusage.h"
 #include "fxjs/xfa/cjx_layoutpseudomodel.h"
+#include "fxjs/xfa/cjx_line.h"
+#include "fxjs/xfa/cjx_linear.h"
 #include "fxjs/xfa/cjx_logpseudomodel.h"
-#include "fxjs/xfa/cjx_object.h"
+#include "fxjs/xfa/cjx_manifest.h"
+#include "fxjs/xfa/cjx_map.h"
+#include "fxjs/xfa/cjx_margin.h"
+#include "fxjs/xfa/cjx_mdp.h"
+#include "fxjs/xfa/cjx_medium.h"
+#include "fxjs/xfa/cjx_message.h"
+#include "fxjs/xfa/cjx_node.h"
+#include "fxjs/xfa/cjx_numericedit.h"
+#include "fxjs/xfa/cjx_occur.h"
+#include "fxjs/xfa/cjx_oid.h"
+#include "fxjs/xfa/cjx_oids.h"
+#include "fxjs/xfa/cjx_operation.h"
+#include "fxjs/xfa/cjx_overflow.h"
+#include "fxjs/xfa/cjx_packet.h"
+#include "fxjs/xfa/cjx_pagearea.h"
+#include "fxjs/xfa/cjx_pageset.h"
+#include "fxjs/xfa/cjx_para.h"
+#include "fxjs/xfa/cjx_password.h"
+#include "fxjs/xfa/cjx_passwordedit.h"
+#include "fxjs/xfa/cjx_pattern.h"
+#include "fxjs/xfa/cjx_picture.h"
+#include "fxjs/xfa/cjx_query.h"
+#include "fxjs/xfa/cjx_radial.h"
+#include "fxjs/xfa/cjx_reason.h"
+#include "fxjs/xfa/cjx_reasons.h"
+#include "fxjs/xfa/cjx_recordset.h"
+#include "fxjs/xfa/cjx_rectangle.h"
+#include "fxjs/xfa/cjx_ref.h"
+#include "fxjs/xfa/cjx_rootelement.h"
+#include "fxjs/xfa/cjx_script.h"
+#include "fxjs/xfa/cjx_select.h"
+#include "fxjs/xfa/cjx_setproperty.h"
+#include "fxjs/xfa/cjx_signature.h"
+#include "fxjs/xfa/cjx_signatureproperties.h"
 #include "fxjs/xfa/cjx_signaturepseudomodel.h"
+#include "fxjs/xfa/cjx_signdata.h"
+#include "fxjs/xfa/cjx_signing.h"
+#include "fxjs/xfa/cjx_soapaction.h"
+#include "fxjs/xfa/cjx_soapaddress.h"
+#include "fxjs/xfa/cjx_solid.h"
+#include "fxjs/xfa/cjx_source.h"
+#include "fxjs/xfa/cjx_sourceset.h"
+#include "fxjs/xfa/cjx_speak.h"
+#include "fxjs/xfa/cjx_stipple.h"
+#include "fxjs/xfa/cjx_subform.h"
+#include "fxjs/xfa/cjx_subformset.h"
+#include "fxjs/xfa/cjx_subjectdn.h"
+#include "fxjs/xfa/cjx_subjectdns.h"
+#include "fxjs/xfa/cjx_submit.h"
+#include "fxjs/xfa/cjx_text.h"
+#include "fxjs/xfa/cjx_textedit.h"
+#include "fxjs/xfa/cjx_time.h"
+#include "fxjs/xfa/cjx_timestamp.h"
+#include "fxjs/xfa/cjx_tooltip.h"
+#include "fxjs/xfa/cjx_traversal.h"
+#include "fxjs/xfa/cjx_traverse.h"
 #include "fxjs/xfa/cjx_tree.h"
 #include "fxjs/xfa/cjx_treelist.h"
+#include "fxjs/xfa/cjx_ui.h"
+#include "fxjs/xfa/cjx_update.h"
+#include "fxjs/xfa/cjx_uri.h"
+#include "fxjs/xfa/cjx_user.h"
+#include "fxjs/xfa/cjx_validate.h"
+#include "fxjs/xfa/cjx_value.h"
+#include "fxjs/xfa/cjx_variables.h"
+#include "fxjs/xfa/cjx_wsdladdress.h"
+#include "fxjs/xfa/cjx_wsdlconnection.h"
+#include "fxjs/xfa/cjx_xfa.h"
+#include "fxjs/xfa/cjx_xmlconnection.h"
+#include "fxjs/xfa/cjx_xsdconnection.h"
 #include "xfa/fxfa/fxfa_basic.h"
 
 const XFA_SCRIPTHIERARCHY g_XFAScriptIndex[] = {
-    {0, 2, 316},    {2, 2, 316},    {4, 2, 316},    {6, 8, 316},
-    {14, 4, 316},   {18, 5, 317},   {23, 2, 316},   {25, 1, 316},
-    {26, 12, 316},  {38, 2, 316},   {40, 1, 316},   {41, 3, 316},
-    {44, 2, 316},   {46, 6, 316},   {52, 0, 316},   {52, 2, 319},
-    {54, 2, 316},   {56, 6, 316},   {62, 0, 316},   {62, 0, 316},
-    {62, 2, 316},   {64, 2, 316},   {66, 6, 316},   {72, 4, 316},
-    {76, 7, 316},   {83, 2, 320},   {85, 3, 316},   {88, 3, 316},
-    {91, 2, 320},   {93, 6, 320},   {99, 4, 316},   {103, 2, 316},
-    {105, 3, 319},  {108, 4, 316},  {112, 3, 316},  {115, 2, 316},
-    {117, 6, 316},  {123, 12, 316}, {135, 2, 316},  {137, 5, 316},
-    {142, 2, 316},  {144, 3, 316},  {147, 1, 316},  {148, 14, 316},
-    {162, 2, 316},  {164, 2, 316},  {166, 3, 316},  {169, 2, 316},
-    {171, 2, 316},  {173, 2, 316},  {175, 4, 316},  {179, 2, 316},
-    {181, 2, 316},  {183, 0, 319},  {183, 20, 316}, {203, 1, 316},
-    {204, 3, 316},  {207, 2, 316},  {209, 0, 316},  {209, 2, 316},
-    {211, 2, 316},  {213, 4, 320},  {217, 0, 316},  {217, 1, 316},
-    {218, 3, 316},  {221, 0, 312},  {221, 1, 316},  {222, 2, 316},
-    {224, 3, -1},   {227, 0, 316},  {227, 2, 316},  {229, 2, 316},
-    {231, 3, 316},  {234, 2, 316},  {236, 6, 316},  {242, 10, 317},
-    {252, 9, 316},  {261, 5, 318},  {266, 4, 318},  {270, 2, 316},
-    {272, 2, 316},  {274, 5, 316},  {279, 3, 316},  {282, 2, 316},
-    {284, 2, 316},  {286, 2, 316},  {288, 2, 316},  {290, 4, 316},
-    {294, 3, 316},  {297, 3, 316},  {300, 2, 316},  {302, 2, 316},
-    {304, 2, 316},  {306, 36, 317}, {342, 3, 316},  {345, 2, 316},
-    {347, 2, 316},  {349, 2, 316},  {351, 7, 317},  {358, 16, 312},
-    {374, 2, 320},  {376, 2, 316},  {378, 0, 316},  {378, 2, 316},
-    {380, 6, 316},  {386, 3, 316},  {389, 2, 316},  {391, 4, 316},
-    {395, 0, 316},  {395, 30, 316}, {425, 2, 320},  {427, 3, 316},
-    {430, 2, 320},  {432, 5, 316},  {437, 2, 316},  {439, 3, 316},
-    {442, 2, 316},  {444, 8, 316},  {452, 1, 316},  {453, 2, 316},
-    {455, 2, 316},  {457, 4, 316},  {461, 0, 316},  {461, 2, 316},
-    {463, 2, 316},  {465, 6, 318},  {471, 31, 317}, {502, 2, 320},
-    {504, 2, 316},  {506, 2, 316},  {508, 4, 320},  {512, 11, 312},
-    {523, 2, 316},  {525, 2, 316},  {527, 2, 316},  {529, 2, 316},
-    {531, 3, 316},  {534, 2, 316},  {536, 3, 316},  {539, 3, 316},
-    {542, 4, 318},  {546, 4, 316},  {550, 2, 316},  {552, 0, 316},
-    {552, 2, 316},  {554, 3, 316},  {557, 6, 316},  {563, 2, 316},
-    {565, 2, 316},  {567, 3, 316},  {570, 1, 312},  {571, 2, 316},
-    {573, 8, 316},  {581, 2, 316},  {583, 4, 316},  {587, 5, 316},
-    {592, 3, 316},  {595, 2, 320},  {597, 3, 316},  {600, 7, 316},
-    {607, 3, 316},  {610, 0, 316},  {610, 4, 317},  {614, 4, 318},
-    {618, 2, 320},  {620, 5, 316},  {625, 2, 316},  {627, 2, 316},
-    {629, 2, 320},  {631, 2, 320},  {633, 4, 316},  {637, 2, 316},
-    {639, 1, 316},  {640, 1, 316},  {641, 4, 316},  {645, 3, 316},
-    {648, 2, 319},  {650, 2, 316},  {652, 2, 316},  {654, 3, 316},
-    {657, 4, 312},  {661, 10, 316}, {671, 2, 316},  {673, 4, 316},
-    {677, 4, 316},  {681, 3, 316},  {684, 2, 316},  {686, 2, 316},
-    {688, 8, 317},  {696, 3, 316},  {699, 3, 316},  {702, 2, 316},
-    {704, 2, 316},  {706, 5, 316},  {711, 4, 316},  {715, 2, 316},
-    {717, 8, 318},  {725, 1, 316},  {726, 2, 320},  {728, 3, 316},
-    {731, 4, 316},  {735, 5, 316},  {740, 3, 316},  {743, 1, 316},
-    {744, 2, 320},  {746, 0, 313},  {746, 2, 316},  {748, 3, 316},
-    {751, 5, 316},  {756, 7, 316},  {763, 6, 316},  {769, 3, 316},
-    {772, 2, 316},  {774, 5, 316},  {779, 2, 316},  {781, 0, 314},
-    {781, 2, 316},  {783, 1, 316},  {784, 2, 316},  {786, 5, 316},
-    {791, 2, 316},  {793, 1, 316},  {794, 2, 316},  {796, 2, 316},
-    {798, 6, 316},  {804, 2, 316},  {806, 2, 320},  {808, 3, 316},
-    {811, 4, 316},  {815, 2, 316},  {817, 2, 316},  {819, 2, 316},
-    {821, 2, 316},  {823, 2, 316},  {825, 2, 316},  {827, 4, 318},
-    {831, 2, 316},  {833, 5, 316},  {838, 20, 317}, {858, 2, 316},
-    {860, 0, 316},  {860, 2, 316},  {862, 4, 320},  {866, 0, 316},
-    {866, 2, 316},  {868, 1, 316},  {869, 2, 316},  {871, 3, 316},
-    {874, 2, 316},  {876, 2, 316},  {878, 4, 316},  {882, 3, 316},
-    {885, 17, 316}, {902, 1, 319},  {903, 2, 316},  {905, 2, 320},
-    {907, 2, 320},  {909, 2, 316},  {911, 2, 316},  {913, 4, 318},
-    {917, 2, 316},  {919, 0, 312},  {919, 2, 316},  {921, 4, 316},
-    {925, 4, 316},  {929, 6, 316},  {935, 2, 316},  {937, 4, 316},
-    {941, 3, 316},  {944, 3, 316},  {947, 2, 316},  {949, 3, 316},
-    {952, 0, 316},  {952, 0, 316},  {952, 2, 316},  {954, 7, 316},
-    {961, 2, 316},  {963, 0, 319},  {963, 7, 316},  {970, 2, 316},
-    {972, 2, 316},  {974, 1, 316},  {975, 2, 320},  {977, 4, 316},
-    {981, 0, 316},  {981, 2, 316},  {983, 2, 316},  {985, 4, 316},
-    {989, 1, 316},  {990, 2, 316},  {992, 2, 316},  {994, 3, 316},
-    {997, 2, 317},  {999, 0, 316},  {999, 4, 316},  {1003, 4, 316},
-    {1007, 2, 316}, {1009, 3, 316}, {1012, 4, 316}, {1016, 7, 316},
-    {1023, 4, 316}, {1027, 1, 313}, {1028, 3, 316}, {1031, 5, 316},
-    {1036, 2, 316}, {1038, 1, 316}, {1039, 4, 316}, {1043, 2, 316},
-    {1045, 2, 316}, {1047, 1, 316}, {1048, 2, 316}, {1050, 5, 316},
-    {1055, 1, -1},  {1056, 1, 312}, {1057, 0, 313}, {1057, 8, 312},
-    {1065, 6, 315}, {1071, 0, 316}, {1071, 0, 316}, {1071, 2, 316},
-    {1073, 2, 316},
+    {/* ps */ 0, 2, 316},
+    {/* to */ 2, 2, 316},
+    {/* ui */ 4, 2, 316},
+    {/* recordSet */ 6, 8, 316},
+    {/* subsetBelow */ 14, 4, 316},
+    {/* subformSet */ 18, 5, 317},
+    {/* adobeExtensionLevel */ 23, 2, 316},
+    {/* typeface */ 25, 1, 316},
+    {/* break */ 26, 12, 316},
+    {/* fontInfo */ 38, 2, 316},
+    {/* numberPattern */ 40, 1, 316},
+    {/* dynamicRender */ 41, 3, 316},
+    {/* printScaling */ 44, 2, 316},
+    {/* checkButton */ 46, 6, 316},
+    {/* datePatterns */ 52, 0, 316},
+    {/* sourceSet */ 52, 2, 319},
+    {/* amd */ 54, 2, 316},
+    {/* arc */ 56, 6, 316},
+    {/* day */ 62, 0, 316},
+    {/* era */ 62, 0, 316},
+    {/* jog */ 62, 2, 316},
+    {/* log */ 64, 2, 316},
+    {/* map */ 66, 6, 316},
+    {/* mdp */ 72, 4, 316},
+    {/* breakBefore */ 76, 7, 316},
+    {/* oid */ 83, 2, 320},
+    {/* pcl */ 85, 3, 316},
+    {/* pdf */ 88, 3, 316},
+    {/* ref */ 91, 2, 320},
+    {/* uri */ 93, 6, 320},
+    {/* xdc */ 99, 4, 316},
+    {/* xdp */ 103, 2, 316},
+    {/* xfa */ 105, 3, 319},
+    {/* xsl */ 108, 4, 316},
+    {/* zpl */ 112, 3, 316},
+    {/* cache */ 115, 2, 316},
+    {/* margin */ 117, 6, 316},
+    {/* keyUsage */ 123, 12, 316},
+    {/* exclude */ 135, 2, 316},
+    {/* choiceList */ 137, 5, 316},
+    {/* level */ 142, 2, 316},
+    {/* labelPrinter */ 144, 3, 316},
+    {/* calendarSymbols */ 147, 1, 316},
+    {/* para */ 148, 14, 316},
+    {/* part */ 162, 2, 316},
+    {/* pdfa */ 164, 2, 316},
+    {/* filter */ 166, 3, 316},
+    {/* present */ 169, 2, 316},
+    {/* pagination */ 171, 2, 316},
+    {/* encoding */ 173, 2, 316},
+    {/* event */ 175, 4, 316},
+    {/* whitespace */ 179, 2, 316},
+    {/* defaultUi */ 181, 2, 316},
+    {/* dataModel */ 183, 0, 319},
+    {/* barcode */ 183, 20, 316},
+    {/* timePattern */ 203, 1, 316},
+    {/* batchOutput */ 204, 3, 316},
+    {/* enforce */ 207, 2, 316},
+    {/* currencySymbols */ 209, 0, 316},
+    {/* addSilentPrint */ 209, 2, 316},
+    {/* rename */ 211, 2, 316},
+    {/* operation */ 213, 4, 320},
+    {/* typefaces */ 217, 0, 316},
+    {/* subjectDNs */ 217, 1, 316},
+    {/* issuers */ 218, 3, 316},
+    {/* signaturePseudoModel */ 221, 0, 312},
+    {/* wsdlConnection */ 221, 1, 316},
+    {/* debug */ 222, 2, 316},
+    {/* delta */ 224, 3, -1},
+    {/* eraNames */ 227, 0, 316},
+    {/* modifyAnnots */ 227, 2, 316},
+    {/* startNode */ 229, 2, 316},
+    {/* button */ 231, 3, 316},
+    {/* format */ 234, 2, 316},
+    {/* border */ 236, 6, 316},
+    {/* area */ 242, 10, 317},
+    {/* hyphenation */ 252, 9, 316},
+    {/* text */ 261, 5, 318},
+    {/* time */ 266, 4, 318},
+    {/* type */ 270, 2, 316},
+    {/* overprint */ 272, 2, 316},
+    {/* certificates */ 274, 5, 316},
+    {/* encryptionMethods */ 279, 3, 316},
+    {/* setProperty */ 282, 2, 316},
+    {/* printerName */ 284, 2, 316},
+    {/* startPage */ 286, 2, 316},
+    {/* pageOffset */ 288, 2, 316},
+    {/* dateTime */ 290, 4, 316},
+    {/* comb */ 294, 3, 316},
+    {/* pattern */ 297, 3, 316},
+    {/* ifEmpty */ 300, 2, 316},
+    {/* suppressBanner */ 302, 2, 316},
+    {/* outputBin */ 304, 2, 316},
+    {/* field */ 306, 36, 317},
+    {/* agent */ 342, 3, 316},
+    {/* outputXSL */ 345, 2, 316},
+    {/* adjustData */ 347, 2, 316},
+    {/* autoSave */ 349, 2, 316},
+    {/* contentArea */ 351, 7, 317},
+    {/* eventPseudoModel */ 358, 16, 312},
+    {/* wsdlAddress */ 374, 2, 320},
+    {/* solid */ 376, 2, 316},
+    {/* dateTimeSymbols */ 378, 0, 316},
+    {/* encryptionLevel */ 378, 2, 316},
+    {/* edge */ 380, 6, 316},
+    {/* stipple */ 386, 3, 316},
+    {/* attributes */ 389, 2, 316},
+    {/* versionControl */ 391, 4, 316},
+    {/* meridiem */ 395, 0, 316},
+    {/* exclGroup */ 395, 30, 316},
+    {/* toolTip */ 425, 2, 320},
+    {/* compress */ 427, 3, 316},
+    {/* reason */ 430, 2, 320},
+    {/* execute */ 432, 5, 316},
+    {/* contentCopy */ 437, 2, 316},
+    {/* dateTimeEdit */ 439, 3, 316},
+    {/* config */ 442, 2, 316},
+    {/* image */ 444, 8, 316},
+    {/* #xHTML */ 452, 1, 316},
+    {/* numberOfCopies */ 453, 2, 316},
+    {/* behaviorOverride */ 455, 2, 316},
+    {/* timeStamp */ 457, 4, 316},
+    {/* month */ 461, 0, 316},
+    {/* viewerPreferences */ 461, 2, 316},
+    {/* scriptModel */ 463, 2, 316},
+    {/* decimal */ 465, 6, 318},
+    {/* subform */ 471, 31, 317},
+    {/* select */ 502, 2, 320},
+    {/* window */ 504, 2, 316},
+    {/* localeSet */ 506, 2, 316},
+    {/* handler */ 508, 4, 320},
+    {/* hostPseudoModel */ 512, 11, 312},
+    {/* presence */ 523, 2, 316},
+    {/* record */ 525, 2, 316},
+    {/* embed */ 527, 2, 316},
+    {/* version */ 529, 2, 316},
+    {/* command */ 531, 3, 316},
+    {/* copies */ 534, 2, 316},
+    {/* staple */ 536, 3, 316},
+    {/* submitFormat */ 539, 3, 316},
+    {/* boolean */ 542, 4, 318},
+    {/* message */ 546, 4, 316},
+    {/* output */ 550, 2, 316},
+    {/* psMap */ 552, 0, 316},
+    {/* excludeNS */ 552, 2, 316},
+    {/* assist */ 554, 3, 316},
+    {/* picture */ 557, 6, 316},
+    {/* traversal */ 563, 2, 316},
+    {/* silentPrint */ 565, 2, 316},
+    {/* webClient */ 567, 3, 316},
+    {/* layoutPseudoModel */ 570, 1, 312},
+    {/* producer */ 571, 2, 316},
+    {/* corner */ 573, 8, 316},
+    {/* msgId */ 581, 2, 316},
+    {/* color */ 583, 4, 316},
+    {/* keep */ 587, 5, 316},
+    {/* query */ 592, 3, 316},
+    {/* insert */ 595, 2, 320},
+    {/* imageEdit */ 597, 3, 316},
+    {/* validate */ 600, 7, 316},
+    {/* digestMethods */ 607, 3, 316},
+    {/* numberPatterns */ 610, 0, 316},
+    {/* pageSet */ 610, 4, 317},
+    {/* integer */ 614, 4, 318},
+    {/* soapAddress */ 618, 2, 320},
+    {/* equate */ 620, 5, 316},
+    {/* formFieldFilling */ 625, 2, 316},
+    {/* pageRange */ 627, 2, 316},
+    {/* update */ 629, 2, 320},
+    {/* connectString */ 631, 2, 320},
+    {/* mode */ 633, 4, 316},
+    {/* layout */ 637, 2, 316},
+    {/* #xml */ 639, 1, 316},
+    {/* xsdConnection */ 640, 1, 316},
+    {/* traverse */ 641, 4, 316},
+    {/* encodings */ 645, 3, 316},
+    {/* template */ 648, 2, 319},
+    {/* acrobat */ 650, 2, 316},
+    {/* validationMessaging */ 652, 2, 316},
+    {/* signing */ 654, 3, 316},
+    {/* dataWindow */ 657, 4, 312},
+    {/* script */ 661, 10, 316},
+    {/* addViewerPreferences */ 671, 2, 316},
+    {/* alwaysEmbed */ 673, 4, 316},
+    {/* passwordEdit */ 677, 4, 316},
+    {/* numericEdit */ 681, 3, 316},
+    {/* encryptionMethod */ 684, 2, 316},
+    {/* change */ 686, 2, 316},
+    {/* pageArea */ 688, 8, 317},
+    {/* submitUrl */ 696, 3, 316},
+    {/* oids */ 699, 3, 316},
+    {/* signature */ 702, 2, 316},
+    {/* ADBE_JSConsole */ 704, 2, 316},
+    {/* caption */ 706, 5, 316},
+    {/* relevant */ 711, 4, 316},
+    {/* flipLabel */ 715, 2, 316},
+    {/* exData */ 717, 8, 318},
+    {/* dayNames */ 725, 1, 316},
+    {/* soapAction */ 726, 2, 320},
+    {/* defaultTypeface */ 728, 3, 316},
+    {/* manifest */ 731, 4, 316},
+    {/* overflow */ 735, 5, 316},
+    {/* linear */ 740, 3, 316},
+    {/* currencySymbol */ 743, 1, 316},
+    {/* delete */ 744, 2, 320},
+    {/* deltas */ 746, 0, 313},
+    {/* digestMethod */ 746, 2, 316},
+    {/* instanceManager */ 748, 3, 316},
+    {/* equateRange */ 751, 5, 316},
+    {/* medium */ 756, 7, 316},
+    {/* textEdit */ 763, 6, 316},
+    {/* templateCache */ 769, 3, 316},
+    {/* compressObjectStream */ 772, 2, 316},
+    {/* dataValue */ 774, 5, 316},
+    {/* accessibleContent */ 779, 2, 316},
+    {/* nodeList */ 781, 0, 314},
+    {/* includeXDPContent */ 781, 2, 316},
+    {/* xmlConnection */ 783, 1, 316},
+    {/* validateApprovalSignatures */ 784, 2, 316},
+    {/* signData */ 786, 5, 316},
+    {/* packets */ 791, 2, 316},
+    {/* datePattern */ 793, 1, 316},
+    {/* duplexOption */ 794, 2, 316},
+    {/* base */ 796, 2, 316},
+    {/* bind */ 798, 6, 316},
+    {/* compression */ 804, 2, 316},
+    {/* user */ 806, 2, 320},
+    {/* rectangle */ 808, 3, 316},
+    {/* effectiveOutputPolicy */ 811, 4, 316},
+    {/* ADBE_JSDebugger */ 815, 2, 316},
+    {/* acrobat7 */ 817, 2, 316},
+    {/* interactive */ 819, 2, 316},
+    {/* locale */ 821, 2, 316},
+    {/* currentPage */ 823, 2, 316},
+    {/* data */ 825, 2, 316},
+    {/* date */ 827, 4, 318},
+    {/* desc */ 831, 2, 316},
+    {/* encrypt */ 833, 5, 316},
+    {/* draw */ 838, 20, 317},
+    {/* encryption */ 858, 2, 316},
+    {/* meridiemNames */ 860, 0, 316},
+    {/* messaging */ 860, 2, 316},
+    {/* speak */ 862, 4, 320},
+    {/* dataGroup */ 866, 0, 316},
+    {/* common */ 866, 2, 316},
+    {/* #text */ 868, 1, 316},
+    {/* paginationOverride */ 869, 2, 316},
+    {/* reasons */ 871, 3, 316},
+    {/* signatureProperties */ 874, 2, 316},
+    {/* threshold */ 876, 2, 316},
+    {/* appearanceFilter */ 878, 4, 316},
+    {/* fill */ 882, 3, 316},
+    {/* font */ 885, 17, 316},
+    {/* form */ 902, 1, 319},
+    {/* mediumInfo */ 903, 2, 316},
+    {/* certificate */ 905, 2, 320},
+    {/* password */ 907, 2, 320},
+    {/* runScripts */ 909, 2, 316},
+    {/* trace */ 911, 2, 316},
+    {/* float */ 913, 4, 318},
+    {/* renderPolicy */ 917, 2, 316},
+    {/* logPseudoModel */ 919, 0, 312},
+    {/* destination */ 919, 2, 316},
+    {/* value */ 921, 4, 316},
+    {/* bookend */ 925, 4, 316},
+    {/* exObject */ 929, 6, 316},
+    {/* openAction */ 935, 2, 316},
+    {/* neverEmbed */ 937, 4, 316},
+    {/* bindItems */ 941, 3, 316},
+    {/* calculate */ 944, 3, 316},
+    {/* print */ 947, 2, 316},
+    {/* extras */ 949, 3, 316},
+    {/* proto */ 952, 0, 316},
+    {/* dSigData */ 952, 0, 316},
+    {/* creator */ 952, 2, 316},
+    {/* connect */ 954, 7, 316},
+    {/* permissions */ 961, 2, 316},
+    {/* connectionSet */ 963, 0, 319},
+    {/* submit */ 963, 7, 316},
+    {/* range */ 970, 2, 316},
+    {/* linearized */ 972, 2, 316},
+    {/* packet */ 974, 1, 316},
+    {/* rootElement */ 975, 2, 320},
+    {/* plaintextMetadata */ 977, 4, 316},
+    {/* numberSymbols */ 981, 0, 316},
+    {/* printHighQuality */ 981, 2, 316},
+    {/* driver */ 983, 2, 316},
+    {/* incrementalLoad */ 985, 4, 316},
+    {/* subjectDN */ 989, 1, 316},
+    {/* compressLogicalStructure */ 990, 2, 316},
+    {/* incrementalMerge */ 992, 2, 316},
+    {/* radial */ 994, 3, 316},
+    {/* variables */ 997, 2, 317},
+    {/* timePatterns */ 999, 0, 316},
+    {/* effectiveInputPolicy */ 999, 4, 316},
+    {/* nameAttr */ 1003, 4, 316},
+    {/* conformance */ 1007, 2, 316},
+    {/* transform */ 1009, 3, 316},
+    {/* lockDocument */ 1012, 4, 316},
+    {/* breakAfter */ 1016, 7, 316},
+    {/* line */ 1023, 4, 316},
+    {/* list */ 1027, 1, 313},
+    {/* source */ 1028, 3, 316},
+    {/* occur */ 1031, 5, 316},
+    {/* pickTrayByPDFSize */ 1036, 2, 316},
+    {/* monthNames */ 1038, 1, 316},
+    {/* severity */ 1039, 4, 316},
+    {/* groupParent */ 1043, 2, 316},
+    {/* documentAssembly */ 1045, 2, 316},
+    {/* numberSymbol */ 1047, 1, 316},
+    {/* tagged */ 1048, 2, 316},
+    {/*  */ 1050, 5, 316},
+    {/*  */ 1055, 1, -1},
+    {/*  */ 1056, 1, 312},
+    {/*  */ 1057, 0, 313},
+    {/*  */ 1057, 8, 312},
+    {/*  */ 1065, 6, 315},
+    {/*  */ 1071, 0, 316},
+    {/*  */ 1071, 0, 316},
+    {/*  */ 1071, 2, 316},
+    {/*  */ 1073, 2, 316},
 };
 const int32_t g_iScriptIndexCount =
     sizeof(g_XFAScriptIndex) / sizeof(XFA_SCRIPTHIERARCHY);
-
 const XFA_SCRIPTATTRIBUTEINFO g_SomAttributeData[] = {
+    /* ps */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* to */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* ui */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Ui::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Ui::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xb3543a6, L"max",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* recordSet */
+    {0xb3543a6, L"max", (XFA_ATTRIBUTE_CALLBACK)&CJX_RecordSet::max,
      XFA_Attribute::Max, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_RecordSet::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0x45a6daf8, L"eofAction",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_RecordSet::eofAction,
      XFA_Attribute::EofAction, XFA_ScriptType::Basic},
     {0x5ec958c0, L"cursorType",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_RecordSet::cursorType,
      XFA_Attribute::CursorType, XFA_ScriptType::Basic},
-    {0x79975f2b, L"lockType",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x79975f2b, L"lockType", (XFA_ATTRIBUTE_CALLBACK)&CJX_RecordSet::lockType,
      XFA_Attribute::LockType, XFA_ScriptType::Basic},
     {0xa5340ff5, L"bofAction",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_RecordSet::bofAction,
      XFA_Attribute::BofAction, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_RecordSet::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
     {0xc5762157, L"cursorLocation",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_RecordSet::cursorLocation,
      XFA_Attribute::CursorLocation, XFA_ScriptType::Basic},
+
+    /* subsetBelow */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
@@ -158,75 +532,80 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* subformSet */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_SubformSet::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0x1ee2d24d, L"instanceIndex",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_InstanceIndex,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_SubformSet::instanceIndex,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0x8c99377e, L"relation",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x8c99377e, L"relation", (XFA_ATTRIBUTE_CALLBACK)&CJX_SubformSet::relation,
      XFA_Attribute::Relation, XFA_ScriptType::Basic},
-    {0x8e1c2921, L"relevant",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x8e1c2921, L"relevant", (XFA_ATTRIBUTE_CALLBACK)&CJX_SubformSet::relevant,
      XFA_Attribute::Relevant, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_SubformSet::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* adobeExtensionLevel */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* typeface */
     {0x31b19c1, L"name",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Name, XFA_ScriptType::Basic},
+
+    /* break */
     {0x3106c3a, L"beforeTarget",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Break::beforeTarget,
      XFA_Attribute::BeforeTarget, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Break::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0x13a08bdb, L"overflowTarget",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Break::overflowTarget,
      XFA_Attribute::OverflowTarget, XFA_ScriptType::Basic},
     {0x169134a1, L"overflowLeader",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Break::overflowLeader,
      XFA_Attribute::OverflowLeader, XFA_ScriptType::Basic},
     {0x20914367, L"overflowTrailer",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Break::overflowTrailer,
      XFA_Attribute::OverflowTrailer, XFA_ScriptType::Basic},
-    {0x453eaf38, L"startNew",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x453eaf38, L"startNew", (XFA_ATTRIBUTE_CALLBACK)&CJX_Break::startNew,
      XFA_Attribute::StartNew, XFA_ScriptType::Basic},
     {0x64110ab5, L"bookendTrailer",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Break::bookendTrailer,
      XFA_Attribute::BookendTrailer, XFA_ScriptType::Basic},
-    {0xb6b44172, L"after",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xb6b44172, L"after", (XFA_ATTRIBUTE_CALLBACK)&CJX_Break::after,
      XFA_Attribute::After, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Break::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
     {0xc3c1442f, L"bookendLeader",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Break::bookendLeader,
      XFA_Attribute::BookendLeader, XFA_ScriptType::Basic},
     {0xcb150479, L"afterTarget",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Break::afterTarget,
      XFA_Attribute::AfterTarget, XFA_ScriptType::Basic},
-    {0xf4ffce73, L"before",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xf4ffce73, L"before", (XFA_ATTRIBUTE_CALLBACK)&CJX_Break::before,
      XFA_Attribute::Before, XFA_ScriptType::Basic},
+
+    /* fontInfo */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* numberPattern */
     {0x31b19c1, L"name",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Name, XFA_ScriptType::Basic},
+
+    /* dynamicRender */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
@@ -236,129 +615,132 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* printScaling */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* checkButton */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_CheckButton::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0x47cfa43a, L"allowNeutral",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_CheckButton::allowNeutral,
      XFA_Attribute::AllowNeutral, XFA_ScriptType::Basic},
-    {0x7c2fd80b, L"mark",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7c2fd80b, L"mark", (XFA_ATTRIBUTE_CALLBACK)&CJX_CheckButton::mark,
      XFA_Attribute::Mark, XFA_ScriptType::Basic},
-    {0x8ed182d1, L"shape",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x8ed182d1, L"shape", (XFA_ATTRIBUTE_CALLBACK)&CJX_CheckButton::shape,
      XFA_Attribute::Shape, XFA_ScriptType::Basic},
-    {0xa686975b, L"size",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xa686975b, L"size", (XFA_ATTRIBUTE_CALLBACK)&CJX_CheckButton::size,
      XFA_Attribute::Size, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_CheckButton::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* datePatterns */
+
+    /* sourceSet */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_SourceSet::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_SourceSet::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* amd */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* arc */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Arc::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x5c054755, L"startAngle",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x5c054755, L"startAngle", (XFA_ATTRIBUTE_CALLBACK)&CJX_Arc::startAngle,
      XFA_Attribute::StartAngle, XFA_ScriptType::Basic},
-    {0x74788f8b, L"sweepAngle",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x74788f8b, L"sweepAngle", (XFA_ATTRIBUTE_CALLBACK)&CJX_Arc::sweepAngle,
      XFA_Attribute::SweepAngle, XFA_ScriptType::Basic},
-    {0x9d833d75, L"circular",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x9d833d75, L"circular", (XFA_ATTRIBUTE_CALLBACK)&CJX_Arc::circular,
      XFA_Attribute::Circular, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Arc::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xd996fa9b, L"hand",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xd996fa9b, L"hand", (XFA_ATTRIBUTE_CALLBACK)&CJX_Arc::hand,
      XFA_Attribute::Hand, XFA_ScriptType::Basic},
+
+    /* day */
+
+    /* era */
+
+    /* jog */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* log */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* map */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Map::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xb0e5485d, L"bind",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xb0e5485d, L"bind", (XFA_ATTRIBUTE_CALLBACK)&CJX_Map::bind,
      XFA_Attribute::Bind, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Map::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
-    {0xcd7f7b54, L"from",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xcd7f7b54, L"from", (XFA_ATTRIBUTE_CALLBACK)&CJX_Map::from,
      XFA_Attribute::From, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* mdp */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Mdp::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0x8e29d794, L"signatureType",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Mdp::signatureType,
      XFA_Attribute::SignatureType, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Mdp::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xe11a2cbc, L"permissions",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xe11a2cbc, L"permissions", (XFA_ATTRIBUTE_CALLBACK)&CJX_Mdp::permissions,
      XFA_Attribute::Permissions, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* breakBefore */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_BreakBefore::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0x453eaf38, L"startNew",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_BreakBefore::startNew,
      XFA_Attribute::StartNew, XFA_ScriptType::Basic},
-    {0x9dcc3ab3, L"trailer",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x9dcc3ab3, L"trailer", (XFA_ATTRIBUTE_CALLBACK)&CJX_BreakBefore::trailer,
      XFA_Attribute::Trailer, XFA_ScriptType::Basic},
     {0xa6118c89, L"targetType",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_BreakBefore::targetType,
      XFA_Attribute::TargetType, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_BreakBefore::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc8da4da7, L"target",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc8da4da7, L"target", (XFA_ATTRIBUTE_CALLBACK)&CJX_BreakBefore::target,
      XFA_Attribute::Target, XFA_ScriptType::Basic},
-    {0xcbcaf66d, L"leader",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xcbcaf66d, L"leader", (XFA_ATTRIBUTE_CALLBACK)&CJX_BreakBefore::leader,
      XFA_Attribute::Leader, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* oid */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Oid::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Oid::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* pcl */
     {0x31b19c1, L"name",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Name, XFA_ScriptType::Basic},
@@ -368,6 +750,8 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* pdf */
     {0x31b19c1, L"name",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Name, XFA_ScriptType::Basic},
@@ -377,17 +761,17 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* ref */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Ref::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Ref::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* uri */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Uri::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Uri::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
@@ -401,6 +785,8 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* xdc */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
@@ -413,20 +799,24 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* xdp */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0x2d574d58, L"this", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Xfa_This,
+
+    /* xfa */
+    {0x2d574d58, L"this", (XFA_ATTRIBUTE_CALLBACK)&CJX_Xfa::thisValue,
      XFA_Attribute::Unknown, XFA_ScriptType::Object},
-    {0x4fdc3454, L"timeStamp",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x4fdc3454, L"timeStamp", (XFA_ATTRIBUTE_CALLBACK)&CJX_Xfa::timeStamp,
      XFA_Attribute::TimeStamp, XFA_ScriptType::Basic},
-    {0xb598a1f7, L"uuid",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xb598a1f7, L"uuid", (XFA_ATTRIBUTE_CALLBACK)&CJX_Xfa::uuid,
      XFA_Attribute::Uuid, XFA_ScriptType::Basic},
+
+    /* xsl */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
@@ -439,6 +829,8 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* zpl */
     {0x31b19c1, L"name",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Name, XFA_ScriptType::Basic},
@@ -448,93 +840,94 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* cache */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* margin */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Margin::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xcfea02e, L"leftInset",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xcfea02e, L"leftInset", (XFA_ATTRIBUTE_CALLBACK)&CJX_Margin::leftInset,
      XFA_Attribute::LeftInset, XFA_ScriptType::Basic},
     {0x1356caf8, L"bottomInset",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Margin::bottomInset,
      XFA_Attribute::BottomInset, XFA_ScriptType::Basic},
-    {0x25764436, L"topInset",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x25764436, L"topInset", (XFA_ATTRIBUTE_CALLBACK)&CJX_Margin::topInset,
      XFA_Attribute::TopInset, XFA_ScriptType::Basic},
-    {0x8a692521, L"rightInset",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x8a692521, L"rightInset", (XFA_ATTRIBUTE_CALLBACK)&CJX_Margin::rightInset,
      XFA_Attribute::RightInset, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Margin::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* keyUsage */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_KeyUsage::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0x1e459b8f, L"nonRepudiation",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_KeyUsage::nonRepudiation,
      XFA_Attribute::NonRepudiation, XFA_ScriptType::Basic},
     {0x2bb3f470, L"encipherOnly",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_KeyUsage::encipherOnly,
      XFA_Attribute::EncipherOnly, XFA_ScriptType::Basic},
-    {0x2f16a382, L"type",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x2f16a382, L"type", (XFA_ATTRIBUTE_CALLBACK)&CJX_KeyUsage::type,
      XFA_Attribute::Type, XFA_ScriptType::Basic},
     {0x5f760b50, L"digitalSignature",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_KeyUsage::digitalSignature,
      XFA_Attribute::DigitalSignature, XFA_ScriptType::Basic},
-    {0x69aa2292, L"crlSign",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x69aa2292, L"crlSign", (XFA_ATTRIBUTE_CALLBACK)&CJX_KeyUsage::crlSign,
      XFA_Attribute::CrlSign, XFA_ScriptType::Basic},
     {0x98fd4d81, L"keyAgreement",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_KeyUsage::keyAgreement,
      XFA_Attribute::KeyAgreement, XFA_ScriptType::Basic},
     {0xa66404cb, L"keyEncipherment",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_KeyUsage::keyEncipherment,
      XFA_Attribute::KeyEncipherment, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_KeyUsage::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
     {0xca5dc27c, L"dataEncipherment",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_KeyUsage::dataEncipherment,
      XFA_Attribute::DataEncipherment, XFA_ScriptType::Basic},
     {0xe8f118a8, L"keyCertSign",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_KeyUsage::keyCertSign,
      XFA_Attribute::KeyCertSign, XFA_ScriptType::Basic},
     {0xfea53ec6, L"decipherOnly",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_KeyUsage::decipherOnly,
      XFA_Attribute::DecipherOnly, XFA_ScriptType::Basic},
+
+    /* exclude */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* choiceList */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_ChoiceList::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x8b90e1f2, L"open",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x8b90e1f2, L"open", (XFA_ATTRIBUTE_CALLBACK)&CJX_ChoiceList::open,
      XFA_Attribute::Open, XFA_ScriptType::Basic},
-    {0x957fa006, L"commitOn",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x957fa006, L"commitOn", (XFA_ATTRIBUTE_CALLBACK)&CJX_ChoiceList::commitOn,
      XFA_Attribute::CommitOn, XFA_ScriptType::Basic},
     {0xb12128b7, L"textEntry",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_ChoiceList::textEntry,
      XFA_Attribute::TextEntry, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_ChoiceList::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* level */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* labelPrinter */
     {0x31b19c1, L"name",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Name, XFA_ScriptType::Basic},
@@ -544,177 +937,174 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* calendarSymbols */
     {0x31b19c1, L"name",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Name, XFA_ScriptType::Basic},
-    {0x2282c73, L"hAlign",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* para */
+    {0x2282c73, L"hAlign", (XFA_ATTRIBUTE_CALLBACK)&CJX_Para::hAlign,
      XFA_Attribute::HAlign, XFA_ScriptType::Basic},
-    {0x8d4f1c7, L"textIndent",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x8d4f1c7, L"textIndent", (XFA_ATTRIBUTE_CALLBACK)&CJX_Para::textIndent,
      XFA_Attribute::TextIndent, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Para::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x2a82d99c, L"marginRight",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x2a82d99c, L"marginRight", (XFA_ATTRIBUTE_CALLBACK)&CJX_Para::marginRight,
      XFA_Attribute::MarginRight, XFA_ScriptType::Basic},
-    {0x534729c9, L"marginLeft",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x534729c9, L"marginLeft", (XFA_ATTRIBUTE_CALLBACK)&CJX_Para::marginLeft,
      XFA_Attribute::MarginLeft, XFA_ScriptType::Basic},
-    {0x5739d1ff, L"radixOffset",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x5739d1ff, L"radixOffset", (XFA_ATTRIBUTE_CALLBACK)&CJX_Para::radixOffset,
      XFA_Attribute::RadixOffset, XFA_ScriptType::Basic},
-    {0x577682ac, L"preserve",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x577682ac, L"preserve", (XFA_ATTRIBUTE_CALLBACK)&CJX_Para::preserve,
      XFA_Attribute::Preserve, XFA_ScriptType::Basic},
-    {0x731e0665, L"spaceBelow",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x731e0665, L"spaceBelow", (XFA_ATTRIBUTE_CALLBACK)&CJX_Para::spaceBelow,
      XFA_Attribute::SpaceBelow, XFA_ScriptType::Basic},
-    {0x7a7cc341, L"vAlign",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7a7cc341, L"vAlign", (XFA_ATTRIBUTE_CALLBACK)&CJX_Para::vAlign,
      XFA_Attribute::VAlign, XFA_ScriptType::Basic},
-    {0x836d4d7c, L"tabDefault",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x836d4d7c, L"tabDefault", (XFA_ATTRIBUTE_CALLBACK)&CJX_Para::tabDefault,
      XFA_Attribute::TabDefault, XFA_ScriptType::Basic},
-    {0x8fa01790, L"tabStops",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x8fa01790, L"tabStops", (XFA_ATTRIBUTE_CALLBACK)&CJX_Para::tabStops,
      XFA_Attribute::TabStops, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Para::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xd4b01921, L"lineHeight",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xd4b01921, L"lineHeight", (XFA_ATTRIBUTE_CALLBACK)&CJX_Para::lineHeight,
      XFA_Attribute::LineHeight, XFA_ScriptType::Basic},
-    {0xe18b5659, L"spaceAbove",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xe18b5659, L"spaceAbove", (XFA_ATTRIBUTE_CALLBACK)&CJX_Para::spaceAbove,
      XFA_Attribute::SpaceAbove, XFA_ScriptType::Basic},
+
+    /* part */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* pdfa */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* filter */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Filter::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Filter::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
     {0xd861f8af, L"addRevocationInfo",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Filter::addRevocationInfo,
      XFA_Attribute::AddRevocationInfo, XFA_ScriptType::Basic},
+
+    /* present */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* pagination */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* encoding */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Encoding::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Encoding::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xbb8df5d, L"ref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* event */
+    {0xbb8df5d, L"ref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Event::ref,
      XFA_Attribute::Ref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Event::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Event::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xd6128d8d, L"activity",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xd6128d8d, L"activity", (XFA_ATTRIBUTE_CALLBACK)&CJX_Event::activity,
      XFA_Attribute::Activity, XFA_ScriptType::Basic},
+
+    /* whitespace */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* defaultUi */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_DefaultUi::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_DefaultUi::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* dataModel */
+
+    /* barcode */
     {0x43e349b, L"dataRowCount",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Barcode::dataRowCount,
      XFA_Attribute::DataRowCount, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Barcode::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x28e17e91, L"dataPrep",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x28e17e91, L"dataPrep", (XFA_ATTRIBUTE_CALLBACK)&CJX_Barcode::dataPrep,
      XFA_Attribute::DataPrep, XFA_ScriptType::Basic},
-    {0x2f16a382, L"type",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x2f16a382, L"type", (XFA_ATTRIBUTE_CALLBACK)&CJX_Barcode::type,
      XFA_Attribute::Type, XFA_ScriptType::Basic},
     {0x3650557e, L"textLocation",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Barcode::textLocation,
      XFA_Attribute::TextLocation, XFA_ScriptType::Basic},
     {0x3b582286, L"moduleWidth",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Barcode::moduleWidth,
      XFA_Attribute::ModuleWidth, XFA_ScriptType::Basic},
     {0x52666f1c, L"printCheckDigit",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Barcode::printCheckDigit,
      XFA_Attribute::PrintCheckDigit, XFA_ScriptType::Basic},
     {0x5404d6df, L"moduleHeight",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Barcode::moduleHeight,
      XFA_Attribute::ModuleHeight, XFA_ScriptType::Basic},
-    {0x5ab23b6c, L"startChar",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x5ab23b6c, L"startChar", (XFA_ATTRIBUTE_CALLBACK)&CJX_Barcode::startChar,
      XFA_Attribute::StartChar, XFA_ScriptType::Basic},
-    {0x7c732a66, L"truncate",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7c732a66, L"truncate", (XFA_ATTRIBUTE_CALLBACK)&CJX_Barcode::truncate,
      XFA_Attribute::Truncate, XFA_ScriptType::Basic},
     {0x8d181d61, L"wideNarrowRatio",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Barcode::wideNarrowRatio,
      XFA_Attribute::WideNarrowRatio, XFA_ScriptType::Basic},
     {0x99800d7a, L"errorCorrectionLevel",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Barcode::errorCorrectionLevel,
      XFA_Attribute::ErrorCorrectionLevel, XFA_ScriptType::Basic},
-    {0x9a63da3d, L"upsMode",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x9a63da3d, L"upsMode", (XFA_ATTRIBUTE_CALLBACK)&CJX_Barcode::upsMode,
      XFA_Attribute::UpsMode, XFA_ScriptType::Basic},
-    {0xaf754613, L"checksum",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xaf754613, L"checksum", (XFA_ATTRIBUTE_CALLBACK)&CJX_Barcode::checksum,
      XFA_Attribute::Checksum, XFA_ScriptType::Basic},
     {0xb045fbc5, L"charEncoding",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Barcode::charEncoding,
      XFA_Attribute::CharEncoding, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Barcode::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
     {0xc035c6b1, L"dataColumnCount",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Barcode::dataColumnCount,
      XFA_Attribute::DataColumnCount, XFA_ScriptType::Basic},
     {0xd3c84d25, L"rowColumnRatio",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Barcode::rowColumnRatio,
      XFA_Attribute::RowColumnRatio, XFA_ScriptType::Basic},
     {0xd57c513c, L"dataLength",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Barcode::dataLength,
      XFA_Attribute::DataLength, XFA_ScriptType::Basic},
-    {0xf575ca75, L"endChar",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xf575ca75, L"endChar", (XFA_ATTRIBUTE_CALLBACK)&CJX_Barcode::endChar,
      XFA_Attribute::EndChar, XFA_ScriptType::Basic},
+
+    /* timePattern */
     {0x31b19c1, L"name",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Name, XFA_ScriptType::Basic},
+
+    /* batchOutput */
     {0x28dee6e9, L"format",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Format, XFA_ScriptType::Basic},
@@ -724,139 +1114,152 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* enforce */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* currencySymbols */
+
+    /* addSilentPrint */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* rename */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* operation */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Operation::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x60d4c8b1, L"output",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x60d4c8b1, L"output", (XFA_ATTRIBUTE_CALLBACK)&CJX_Operation::output,
      XFA_Attribute::Output, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Operation::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xd6a39990, L"input",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xd6a39990, L"input", (XFA_ATTRIBUTE_CALLBACK)&CJX_Operation::input,
      XFA_Attribute::Input, XFA_ScriptType::Basic},
-    {0x2f16a382, L"type",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* typefaces */
+
+    /* subjectDNs */
+    {0x2f16a382, L"type", (XFA_ATTRIBUTE_CALLBACK)&CJX_SubjectDNs::type,
      XFA_Attribute::Type, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* issuers */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Issuers::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x2f16a382, L"type",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x2f16a382, L"type", (XFA_ATTRIBUTE_CALLBACK)&CJX_Issuers::type,
      XFA_Attribute::Type, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Issuers::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* signaturePseudoModel */
+
+    /* wsdlConnection */
     {0x2b5df51e, L"dataDescription",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_WsdlConnection::dataDescription,
      XFA_Attribute::DataDescription, XFA_ScriptType::Basic},
+
+    /* debug */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* delta */
     {0x6c0d9600, L"currentValue",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Delta_CurrentValue,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Delta::currentValue, XFA_Attribute::Unknown,
+     XFA_ScriptType::Basic},
+    {0x942643f0, L"savedValue", (XFA_ATTRIBUTE_CALLBACK)&CJX_Delta::savedValue,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0x942643f0, L"savedValue",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Delta_SavedValue,
+    {0xc8da4da7, L"target", (XFA_ATTRIBUTE_CALLBACK)&CJX_Delta::target,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xc8da4da7, L"target",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Delta_Target,
-     XFA_Attribute::Unknown, XFA_ScriptType::Basic},
+
+    /* eraNames */
+
+    /* modifyAnnots */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* startNode */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* button */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Button::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Button::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xd4cc53f8, L"highlight",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xd4cc53f8, L"highlight", (XFA_ATTRIBUTE_CALLBACK)&CJX_Button::highlight,
      XFA_Attribute::Highlight, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* format */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Format::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Format::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0x5518c25, L"break",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* border */
+    {0x5518c25, L"break", (XFA_ATTRIBUTE_CALLBACK)&CJX_Border::breakValue,
      XFA_Attribute::Break, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Border::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x570ce835, L"presence",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x570ce835, L"presence", (XFA_ATTRIBUTE_CALLBACK)&CJX_Border::presence,
      XFA_Attribute::Presence, XFA_ScriptType::Basic},
-    {0x8e1c2921, L"relevant",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x8e1c2921, L"relevant", (XFA_ATTRIBUTE_CALLBACK)&CJX_Border::relevant,
      XFA_Attribute::Relevant, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Border::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xd996fa9b, L"hand",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xd996fa9b, L"hand", (XFA_ATTRIBUTE_CALLBACK)&CJX_Border::hand,
      XFA_Attribute::Hand, XFA_ScriptType::Basic},
-    {0x78, L"x", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::X, XFA_ScriptType::Basic},
-    {0x79, L"y", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::Y, XFA_ScriptType::Basic},
-    {0x31b19c1, L"name",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* area */
+    {0x78, L"x", (XFA_ATTRIBUTE_CALLBACK)&CJX_Area::x, XFA_Attribute::X,
+     XFA_ScriptType::Basic},
+    {0x79, L"y", (XFA_ATTRIBUTE_CALLBACK)&CJX_Area::y, XFA_Attribute::Y,
+     XFA_ScriptType::Basic},
+    {0x21aed, L"id", (XFA_ATTRIBUTE_CALLBACK)&CJX_Area::id, XFA_Attribute::Id,
+     XFA_ScriptType::Basic},
+    {0x31b19c1, L"name", (XFA_ATTRIBUTE_CALLBACK)&CJX_Area::name,
      XFA_Attribute::Name, XFA_ScriptType::Basic},
-    {0x31b19c1, L"name",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::Name, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Area::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0x1059ec18, L"level",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_Integer,
      XFA_Attribute::Level, XFA_ScriptType::Basic},
-    {0x8e1c2921, L"relevant",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x8e1c2921, L"relevant", (XFA_ATTRIBUTE_CALLBACK)&CJX_Area::relevant,
      XFA_Attribute::Relevant, XFA_ScriptType::Basic},
-    {0xac06e2b0, L"colSpan",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xac06e2b0, L"colSpan", (XFA_ATTRIBUTE_CALLBACK)&CJX_Area::colSpan,
      XFA_Attribute::ColSpan, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Area::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* hyphenation */
     {0x21aed, L"id",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Id, XFA_ScriptType::Basic},
@@ -884,60 +1287,60 @@
     {0xe5c96d6a, L"excludeAllCaps",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::ExcludeAllCaps, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* text */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Text::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x8af2e657, L"maxChars",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x8af2e657, L"maxChars", (XFA_ATTRIBUTE_CALLBACK)&CJX_Text::maxChars,
      XFA_Attribute::MaxChars, XFA_ScriptType::Basic},
-    {0xa52682bd, L"{default}",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
+    {0xa52682bd, L"{default}", (XFA_ATTRIBUTE_CALLBACK)&CJX_Text::defaultValue,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Text::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xd6e27f1d, L"value",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
+    {0xd6e27f1d, L"value", (XFA_ATTRIBUTE_CALLBACK)&CJX_Text::value,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* time */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Time::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xa52682bd, L"{default}",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
+    {0xa52682bd, L"{default}", (XFA_ATTRIBUTE_CALLBACK)&CJX_Time::defaultValue,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Time::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xd6e27f1d, L"value",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
+    {0xd6e27f1d, L"value", (XFA_ATTRIBUTE_CALLBACK)&CJX_Time::value,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
+
+    /* type */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* overprint */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc080cd3, L"url",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* certificates */
+    {0xc080cd3, L"url", (XFA_ATTRIBUTE_CALLBACK)&CJX_Certificates::url,
      XFA_Attribute::Url, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Certificates::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0xa6710262, L"credentialServerPolicy",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Certificates::credentialServerPolicy,
      XFA_Attribute::CredentialServerPolicy, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Certificates::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
     {0xc2ba0923, L"urlPolicy",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Certificates::urlPolicy,
      XFA_Attribute::UrlPolicy, XFA_ScriptType::Basic},
+
+    /* encryptionMethods */
     {0xc0811ed, L"use",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
@@ -947,182 +1350,175 @@
     {0xbc254332, L"usehref",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* setProperty */
     {0x47d03490, L"connection",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_SetProperty::connection,
      XFA_Attribute::Connection, XFA_ScriptType::Basic},
-    {0xc8da4da7, L"target",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc8da4da7, L"target", (XFA_ATTRIBUTE_CALLBACK)&CJX_SetProperty::target,
      XFA_Attribute::Target, XFA_ScriptType::Basic},
+
+    /* printerName */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* startPage */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* pageOffset */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* dateTime */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_DateTime::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0xa52682bd, L"{default}",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_DateTime::defaultValue,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_DateTime::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xd6e27f1d, L"value",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
+    {0xd6e27f1d, L"value", (XFA_ATTRIBUTE_CALLBACK)&CJX_DateTime::value,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* comb */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Comb::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0x78bff531, L"numberOfCells",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_Integer,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Comb::numberOfCells,
      XFA_Attribute::NumberOfCells, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Comb::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* pattern */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Pattern::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x2f16a382, L"type",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x2f16a382, L"type", (XFA_ATTRIBUTE_CALLBACK)&CJX_Pattern::type,
      XFA_Attribute::Type, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Pattern::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* ifEmpty */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* suppressBanner */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* outputBin */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0x68, L"h", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::H, XFA_ScriptType::Basic},
-    {0x77, L"w", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::W, XFA_ScriptType::Basic},
-    {0x78, L"x", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::X, XFA_ScriptType::Basic},
-    {0x79, L"y", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::Y, XFA_ScriptType::Basic},
-    {0x2282c73, L"hAlign",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* field */
+    {0x68, L"h", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::h, XFA_Attribute::H,
+     XFA_ScriptType::Basic},
+    {0x77, L"w", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::w, XFA_Attribute::W,
+     XFA_ScriptType::Basic},
+    {0x78, L"x", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::x, XFA_Attribute::X,
+     XFA_ScriptType::Basic},
+    {0x79, L"y", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::y, XFA_Attribute::Y,
+     XFA_ScriptType::Basic},
+    {0x2282c73, L"hAlign", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::hAlign,
      XFA_Attribute::HAlign, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0x1abbd7e0, L"dataNode",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DataNode,
      XFA_Attribute::Unknown, XFA_ScriptType::Object},
-    {0x25839852, L"access",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x25839852, L"access", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::access,
      XFA_Attribute::Access, XFA_ScriptType::Basic},
-    {0x2ee7678f, L"rotate",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x2ee7678f, L"rotate", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::rotate,
      XFA_Attribute::Rotate, XFA_ScriptType::Basic},
-    {0x3b1ddd06, L"fillColor",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_FillColor,
+    {0x3b1ddd06, L"fillColor", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::fillColor,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x54c399e3, L"formattedValue",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Field_FormattedValue,
-     XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0x570ce835, L"presence",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::formattedValue, XFA_Attribute::Unknown,
+     XFA_ScriptType::Basic},
+    {0x570ce835, L"presence", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::presence,
      XFA_Attribute::Presence, XFA_ScriptType::Basic},
     {0x5a3b375d, L"borderColor",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_BorderColor,
-     XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0x5e936ed6, L"fontColor",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_FontColor,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::borderColor, XFA_Attribute::Unknown,
+     XFA_ScriptType::Basic},
+    {0x5e936ed6, L"fontColor", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::fontColor,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x6826c408, L"parentSubform",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Field_ParentSubform,
-     XFA_Attribute::Unknown, XFA_ScriptType::Basic},
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::parentSubform, XFA_Attribute::Unknown,
+     XFA_ScriptType::Basic},
     {0x79b67434, L"mandatoryMessage",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_MandatoryMessage,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::mandatoryMessage,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0x7a7cc341, L"vAlign",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7a7cc341, L"vAlign", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::vAlign,
      XFA_Attribute::VAlign, XFA_ScriptType::Basic},
-    {0x7c2ff6ae, L"maxH",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7c2ff6ae, L"maxH", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::maxH,
      XFA_Attribute::MaxH, XFA_ScriptType::Basic},
-    {0x7c2ff6bd, L"maxW",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7c2ff6bd, L"maxW", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::maxW,
      XFA_Attribute::MaxW, XFA_ScriptType::Basic},
-    {0x7d02356c, L"minH",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7d02356c, L"minH", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::minH,
      XFA_Attribute::MinH, XFA_ScriptType::Basic},
-    {0x7d02357b, L"minW",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7d02357b, L"minW", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::minW,
      XFA_Attribute::MinW, XFA_ScriptType::Basic},
-    {0x85fd6faf, L"mandatory",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_Mandatory,
+    {0x85fd6faf, L"mandatory", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::mandatory,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0x8e1c2921, L"relevant",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x8e1c2921, L"relevant", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::relevant,
      XFA_Attribute::Relevant, XFA_ScriptType::Basic},
     {0x964fb42e, L"formatMessage",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Field_FormatMessage,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::formatMessage, XFA_Attribute::Unknown,
+     XFA_ScriptType::Basic},
+    {0xa03cf627, L"rawValue", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::rawValue,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xa03cf627, L"rawValue",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
-     XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xa52682bd, L"{default}",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
+    {0xa52682bd, L"{default}", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::defaultValue,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0xa60dd202, L"length",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Field_Length,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xac06e2b0, L"colSpan",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xac06e2b0, L"colSpan", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::colSpan,
      XFA_Attribute::ColSpan, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xbc8fa350, L"locale",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc8fa350, L"locale", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::locale,
      XFA_Attribute::Locale, XFA_ScriptType::Basic},
-    {0xc2bd40fd, L"anchorType",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc2bd40fd, L"anchorType", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::anchorType,
      XFA_Attribute::AnchorType, XFA_ScriptType::Basic},
-    {0xc4fed09b, L"accessKey",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc4fed09b, L"accessKey", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::accessKey,
      XFA_Attribute::AccessKey, XFA_ScriptType::Basic},
     {0xcabfa3d0, L"validationMessage",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_ValidationMessage,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::validationMessage,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xdcecd663, L"editValue",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Field_EditValue,
+    {0xdcecd663, L"editValue", (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::editValue,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0xe07e5061, L"selectedIndex",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Field_SelectedIndex,
-     XFA_Attribute::Unknown, XFA_ScriptType::Basic},
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::selectedIndex, XFA_Attribute::Unknown,
+     XFA_ScriptType::Basic},
     {0xf65e34be, L"borderWidth",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_BorderWidth,
-     XFA_Attribute::Unknown, XFA_ScriptType::Basic},
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Field::borderWidth, XFA_Attribute::Unknown,
+     XFA_ScriptType::Basic},
+
+    /* agent */
     {0x31b19c1, L"name",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Name, XFA_ScriptType::Basic},
@@ -1132,139 +1528,150 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* outputXSL */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* adjustData */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* autoSave */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* contentArea */
     {0x68, L"h", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::H, XFA_ScriptType::Basic},
     {0x77, L"w", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::W, XFA_ScriptType::Basic},
-    {0x78, L"x", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::X, XFA_ScriptType::Basic},
-    {0x79, L"y", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::Y, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x78, L"x", (XFA_ATTRIBUTE_CALLBACK)&CJX_ContentArea::x, XFA_Attribute::X,
+     XFA_ScriptType::Basic},
+    {0x79, L"y", (XFA_ATTRIBUTE_CALLBACK)&CJX_ContentArea::y, XFA_Attribute::Y,
+     XFA_ScriptType::Basic},
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_ContentArea::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0x8e1c2921, L"relevant",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_ContentArea::relevant,
      XFA_Attribute::Relevant, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_ContentArea::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* eventPseudoModel */
     {0xd843798, L"fullText",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::FullText,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::fullText,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x1b6d1cf5, L"reenter",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::Reenter,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::reenter,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x1e6ffa9a, L"prevContentType",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::PrevContentType,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::prevContentType,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x25a3c206, L"soapFaultString",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::SoapFaultString,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::soapFaultString,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x2e00c007, L"newContentType",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::NewContentType,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::newContentType,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x4570500f, L"modifier",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::Modifier,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::modifier,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x50e2e33b, L"selEnd",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::SelEnd,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::selEnd,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x57de87c2, L"prevText",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::PrevText,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::prevText,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x6ea04e0a, L"soapFaultCode",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::SoapFaultCode,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::soapFaultCode,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x6f6556cf, L"newText",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::NewText,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::newText,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x891f4606, L"change",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::Change,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::change,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0x8fa3c19e, L"shift", (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::Shift,
+    {0x8fa3c19e, L"shift", (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::shift,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0xa9d9b2e1, L"keyDown",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::KeyDown,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::keyDown,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0xbfc89db2, L"selStart",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::SelStart,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::selStart,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0xc32a5812, L"commitKey",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::CommitKey,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::commitKey,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0xc8da4da7, L"target",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::Target,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_EventPseudoModel::target,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* wsdlAddress */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_WsdlAddress::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_WsdlAddress::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* solid */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Solid::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Solid::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* dateTimeSymbols */
+
+    /* encryptionLevel */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xa2e3514, L"cap",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* edge */
+    {0xa2e3514, L"cap", (XFA_ATTRIBUTE_CALLBACK)&CJX_Edge::cap,
      XFA_Attribute::Cap, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Edge::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x5392ea58, L"stroke",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x5392ea58, L"stroke", (XFA_ATTRIBUTE_CALLBACK)&CJX_Edge::stroke,
      XFA_Attribute::Stroke, XFA_ScriptType::Basic},
-    {0x570ce835, L"presence",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x570ce835, L"presence", (XFA_ATTRIBUTE_CALLBACK)&CJX_Edge::presence,
      XFA_Attribute::Presence, XFA_ScriptType::Basic},
-    {0x94446dcc, L"thickness",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x94446dcc, L"thickness", (XFA_ATTRIBUTE_CALLBACK)&CJX_Edge::thickness,
      XFA_Attribute::Thickness, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Edge::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* stipple */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Stipple::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x1ec8ab2c, L"rate",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x1ec8ab2c, L"rate", (XFA_ATTRIBUTE_CALLBACK)&CJX_Stipple::rate,
      XFA_Attribute::Rate, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Stipple::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* attributes */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* versionControl */
     {0x7b29630a, L"sourceBelow",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::SourceBelow, XFA_ScriptType::Basic},
@@ -1277,19 +1684,21 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0x68, L"h", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::H, XFA_ScriptType::Basic},
-    {0x77, L"w", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::W, XFA_ScriptType::Basic},
-    {0x78, L"x", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::X, XFA_ScriptType::Basic},
-    {0x79, L"y", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::Y, XFA_ScriptType::Basic},
-    {0x2282c73, L"hAlign",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* meridiem */
+
+    /* exclGroup */
+    {0x68, L"h", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::h, XFA_Attribute::H,
+     XFA_ScriptType::Basic},
+    {0x77, L"w", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::w, XFA_Attribute::W,
+     XFA_ScriptType::Basic},
+    {0x78, L"x", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::x, XFA_Attribute::X,
+     XFA_ScriptType::Basic},
+    {0x79, L"y", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::y, XFA_Attribute::Y,
+     XFA_ScriptType::Basic},
+    {0x2282c73, L"hAlign", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::hAlign,
      XFA_Attribute::HAlign, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0xf23332f, L"errorText",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_ExclGroup_ErrorText,
@@ -1297,78 +1706,68 @@
     {0x1abbd7e0, L"dataNode",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DataNode,
      XFA_Attribute::Unknown, XFA_ScriptType::Object},
-    {0x25839852, L"access",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x25839852, L"access", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::access,
      XFA_Attribute::Access, XFA_ScriptType::Basic},
     {0x3b1ddd06, L"fillColor",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_FillColor,
-     XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0x570ce835, L"presence",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::fillColor, XFA_Attribute::Unknown,
+     XFA_ScriptType::Basic},
+    {0x570ce835, L"presence", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::presence,
      XFA_Attribute::Presence, XFA_ScriptType::Basic},
     {0x5a3b375d, L"borderColor",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_BorderColor,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::borderColor,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x79b67434, L"mandatoryMessage",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_MandatoryMessage,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::mandatoryMessage,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0x7a7cc341, L"vAlign",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7a7cc341, L"vAlign", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::vAlign,
      XFA_Attribute::VAlign, XFA_ScriptType::Basic},
-    {0x7c2ff6ae, L"maxH",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7c2ff6ae, L"maxH", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::maxH,
      XFA_Attribute::MaxH, XFA_ScriptType::Basic},
-    {0x7c2ff6bd, L"maxW",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7c2ff6bd, L"maxW", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::maxW,
      XFA_Attribute::MaxW, XFA_ScriptType::Basic},
-    {0x7d02356c, L"minH",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7d02356c, L"minH", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::minH,
      XFA_Attribute::MinH, XFA_ScriptType::Basic},
-    {0x7d02357b, L"minW",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7d02357b, L"minW", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::minW,
      XFA_Attribute::MinW, XFA_ScriptType::Basic},
-    {0x7e7e845e, L"layout",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7e7e845e, L"layout", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::layout,
      XFA_Attribute::Layout, XFA_ScriptType::Basic},
     {0x846599f8, L"transient",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_ExclGroup_Transient,
-     XFA_Attribute::Unknown, XFA_ScriptType::Basic},
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::transient, XFA_Attribute::Unknown,
+     XFA_ScriptType::Basic},
     {0x85fd6faf, L"mandatory",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_Mandatory,
-     XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0x8e1c2921, L"relevant",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::mandatory, XFA_Attribute::Unknown,
+     XFA_ScriptType::Basic},
+    {0x8e1c2921, L"relevant", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::relevant,
      XFA_Attribute::Relevant, XFA_ScriptType::Basic},
-    {0xa03cf627, L"rawValue",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_ExclGroup_DefaultAndRawValue,
+    {0xa03cf627, L"rawValue", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::rawValue,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0xa52682bd, L"{default}",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_ExclGroup_DefaultAndRawValue,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::defaultValue,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xac06e2b0, L"colSpan",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xac06e2b0, L"colSpan", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::colSpan,
      XFA_Attribute::ColSpan, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
     {0xc2bd40fd, L"anchorType",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::anchorType,
      XFA_Attribute::AnchorType, XFA_ScriptType::Basic},
     {0xc4fed09b, L"accessKey",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::accessKey,
      XFA_Attribute::AccessKey, XFA_ScriptType::Basic},
     {0xcabfa3d0, L"validationMessage",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_ValidationMessage,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::validationMessage,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0xf65e34be, L"borderWidth",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_BorderWidth,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_ExclGroup::borderWidth,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* toolTip */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_ToolTip::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_ToolTip::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* compress */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
@@ -1378,318 +1777,331 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* reason */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Reason::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Reason::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* execute */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Execute::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0x47d03490, L"connection",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Execute::connection,
      XFA_Attribute::Connection, XFA_ScriptType::Basic},
-    {0x6cfa828a, L"runAt",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x6cfa828a, L"runAt", (XFA_ATTRIBUTE_CALLBACK)&CJX_Execute::runAt,
      XFA_Attribute::RunAt, XFA_ScriptType::Basic},
     {0xa1b0d2f5, L"executeType",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Execute::executeType,
      XFA_Attribute::ExecuteType, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Execute::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* contentCopy */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* dateTimeEdit */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_DateTimeEdit::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_DateTimeEdit::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
     {0xe6f99487, L"hScrollPolicy",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_DateTimeEdit::hScrollPolicy,
      XFA_Attribute::HScrollPolicy, XFA_ScriptType::Basic},
+
+    /* config */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* image */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Image::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0x42fed1fd, L"contentType",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Image::contentType,
      XFA_Attribute::ContentType, XFA_ScriptType::Basic},
     {0x54fa722c, L"transferEncoding",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Image::transferEncoding,
      XFA_Attribute::TransferEncoding, XFA_ScriptType::Basic},
-    {0xa52682bd, L"{default}",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue_Read,
+    {0xa52682bd, L"{default}", (XFA_ATTRIBUTE_CALLBACK)&CJX_Image::defaultValue,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Image::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xd171b240, L"aspect",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xd171b240, L"aspect", (XFA_ATTRIBUTE_CALLBACK)&CJX_Image::aspect,
      XFA_Attribute::Aspect, XFA_ScriptType::Basic},
-    {0xd6e27f1d, L"value",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue_Read,
+    {0xd6e27f1d, L"value", (XFA_ATTRIBUTE_CALLBACK)&CJX_Image::value,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xdb55fec5, L"href",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xdb55fec5, L"href", (XFA_ATTRIBUTE_CALLBACK)&CJX_Image::href,
      XFA_Attribute::Href, XFA_ScriptType::Basic},
+
+    /* #xHTML */
     {0xd6e27f1d, L"value",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Value, XFA_ScriptType::Basic},
+
+    /* numberOfCopies */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* behaviorOverride */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* timeStamp */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_TimeStamp::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x2f16a382, L"type",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x2f16a382, L"type", (XFA_ATTRIBUTE_CALLBACK)&CJX_TimeStamp::type,
      XFA_Attribute::Type, XFA_ScriptType::Basic},
-    {0x7f6fd3d7, L"server",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7f6fd3d7, L"server", (XFA_ATTRIBUTE_CALLBACK)&CJX_TimeStamp::server,
      XFA_Attribute::Server, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_TimeStamp::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* month */
+
+    /* viewerPreferences */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* scriptModel */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* decimal */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Decimal::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0x4b8bc840, L"fracDigits",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Decimal::fracDigits,
      XFA_Attribute::FracDigits, XFA_ScriptType::Basic},
     {0xa52682bd, L"{default}",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
-     XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Decimal::defaultValue, XFA_Attribute::Unknown,
+     XFA_ScriptType::Basic},
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Decimal::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xd6e27f1d, L"value",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
+    {0xd6e27f1d, L"value", (XFA_ATTRIBUTE_CALLBACK)&CJX_Decimal::value,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0xde7f92ba, L"leadDigits",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Decimal::leadDigits,
      XFA_Attribute::LeadDigits, XFA_ScriptType::Basic},
-    {0x68, L"h", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::H, XFA_ScriptType::Basic},
-    {0x77, L"w", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::W, XFA_ScriptType::Basic},
-    {0x78, L"x", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::X, XFA_ScriptType::Basic},
-    {0x79, L"y", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::Y, XFA_ScriptType::Basic},
-    {0x2282c73, L"hAlign",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* subform */
+    {0x68, L"h", (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::h, XFA_Attribute::H,
+     XFA_ScriptType::Basic},
+    {0x77, L"w", (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::w, XFA_Attribute::W,
+     XFA_ScriptType::Basic},
+    {0x78, L"x", (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::x, XFA_Attribute::X,
+     XFA_ScriptType::Basic},
+    {0x79, L"y", (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::y, XFA_Attribute::Y,
+     XFA_ScriptType::Basic},
+    {0x2282c73, L"hAlign", (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::hAlign,
      XFA_Attribute::HAlign, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0x1414d431, L"allowMacro",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::allowMacro,
      XFA_Attribute::AllowMacro, XFA_ScriptType::Basic},
     {0x1517dfa1, L"columnWidths",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::columnWidths,
      XFA_Attribute::ColumnWidths, XFA_ScriptType::Basic},
     {0x1abbd7e0, L"dataNode",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DataNode,
      XFA_Attribute::Unknown, XFA_ScriptType::Object},
     {0x1ee2d24d, L"instanceIndex",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_InstanceIndex,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::instanceIndex,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x25839852, L"access",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
      XFA_Attribute::Access, XFA_ScriptType::Basic},
     {0x3b1ddd06, L"fillColor",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_FillColor,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0x570ce835, L"presence",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x570ce835, L"presence", (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::presence,
      XFA_Attribute::Presence, XFA_ScriptType::Basic},
     {0x5a3b375d, L"borderColor",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_BorderColor,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0x7a7cc341, L"vAlign",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7a7cc341, L"vAlign", (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::vAlign,
      XFA_Attribute::VAlign, XFA_ScriptType::Basic},
-    {0x7c2ff6ae, L"maxH",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7c2ff6ae, L"maxH", (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::maxH,
      XFA_Attribute::MaxH, XFA_ScriptType::Basic},
-    {0x7c2ff6bd, L"maxW",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7c2ff6bd, L"maxW", (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::maxW,
      XFA_Attribute::MaxW, XFA_ScriptType::Basic},
-    {0x7d02356c, L"minH",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7d02356c, L"minH", (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::minH,
      XFA_Attribute::MinH, XFA_ScriptType::Basic},
-    {0x7d02357b, L"minW",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7d02357b, L"minW", (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::minW,
      XFA_Attribute::MinW, XFA_ScriptType::Basic},
-    {0x7e7e845e, L"layout",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7e7e845e, L"layout", (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::layout,
      XFA_Attribute::Layout, XFA_ScriptType::Basic},
-    {0x8e1c2921, L"relevant",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x8e1c2921, L"relevant", (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::relevant,
      XFA_Attribute::Relevant, XFA_ScriptType::Basic},
     {0x9cc17d75, L"mergeMode",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
      XFA_Attribute::MergeMode, XFA_ScriptType::Basic},
     {0x9f3e9510, L"instanceManager",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Subform_InstanceManager,
      XFA_Attribute::Unknown, XFA_ScriptType::Object},
-    {0xac06e2b0, L"colSpan",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xac06e2b0, L"colSpan", (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::colSpan,
      XFA_Attribute::ColSpan, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xbc8fa350, L"locale",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Subform_Locale,
+    {0xbc8fa350, L"locale", (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::locale,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0xc2bd40fd, L"anchorType",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::anchorType,
      XFA_Attribute::AnchorType, XFA_ScriptType::Basic},
     {0xcabfa3d0, L"validationMessage",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_ValidationMessage,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::validationMessage,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0xe4c3a5e5, L"restoreState",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::restoreState,
      XFA_Attribute::RestoreState, XFA_ScriptType::Basic},
-    {0xeda9017a, L"scope",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xeda9017a, L"scope", (XFA_ATTRIBUTE_CALLBACK)&CJX_Subform::scope,
      XFA_Attribute::Scope, XFA_ScriptType::Basic},
     {0xf65e34be, L"borderWidth",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_BorderWidth,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* select */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Select::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Select::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* window */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* localeSet */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* handler */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Handler::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x2f16a382, L"type",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x2f16a382, L"type", (XFA_ATTRIBUTE_CALLBACK)&CJX_Handler::type,
      XFA_Attribute::Type, XFA_ScriptType::Basic},
-    {0x5a50e9e6, L"version",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Handler_Version,
+    {0x5a50e9e6, L"version", (XFA_ATTRIBUTE_CALLBACK)&CJX_Handler::version,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Handler::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0x31b19c1, L"name", (XFA_ATTRIBUTE_CALLBACK)&CJX_HostPseudoModel::Name,
+
+    /* hostPseudoModel */
+    {0x31b19c1, L"name", (XFA_ATTRIBUTE_CALLBACK)&CJX_HostPseudoModel::name,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x66c1ae9, L"validationsEnabled",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_HostPseudoModel::ValidationsEnabled,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_HostPseudoModel::validationsEnabled,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0x14d04502, L"title", (XFA_ATTRIBUTE_CALLBACK)&CJX_HostPseudoModel::Title,
+    {0x14d04502, L"title", (XFA_ATTRIBUTE_CALLBACK)&CJX_HostPseudoModel::title,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x392ae445, L"platform",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_HostPseudoModel::Platform,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_HostPseudoModel::platform,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x5a50e9e6, L"version",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_HostPseudoModel::Version,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_HostPseudoModel::version,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x66cb1eed, L"variation",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_HostPseudoModel::Variation,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_HostPseudoModel::variation,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x7717cbc4, L"language",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_HostPseudoModel::Language,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_HostPseudoModel::language,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x86698963, L"appType",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_HostPseudoModel::AppType,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_HostPseudoModel::appType,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x94ff9e8d, L"calculationsEnabled",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_HostPseudoModel::CalculationsEnabled,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_HostPseudoModel::calculationsEnabled,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0xbcd44940, L"currentPage",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_HostPseudoModel::CurrentPage,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_HostPseudoModel::currentPage,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0xd592b920, L"numPages",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_HostPseudoModel::NumPages,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_HostPseudoModel::numPages,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
+
+    /* presence */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* record */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* embed */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* version */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* command */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Command::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x24d85167, L"timeout",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x24d85167, L"timeout", (XFA_ATTRIBUTE_CALLBACK)&CJX_Command::timeout,
      XFA_Attribute::Timeout, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Command::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* copies */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* staple */
     {0x7d9fd7c5, L"mode",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Mode, XFA_ScriptType::Basic},
@@ -1699,6 +2111,8 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* submitFormat */
     {0x7d9fd7c5, L"mode",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_SubmitFormat_Mode,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
@@ -1708,23 +2122,22 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* boolean */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Boolean::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0xa52682bd, L"{default}",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
-     XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Boolean::defaultValue, XFA_Attribute::Unknown,
+     XFA_ScriptType::Basic},
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Boolean::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xd6e27f1d, L"value",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
+    {0xd6e27f1d, L"value", (XFA_ATTRIBUTE_CALLBACK)&CJX_Boolean::value,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* message */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Message::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Message::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
@@ -1732,57 +2145,65 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* output */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* psMap */
+
+    /* excludeNS */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* assist */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Assist::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x2038c9b2, L"role",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x2038c9b2, L"role", (XFA_ATTRIBUTE_CALLBACK)&CJX_Assist::role,
      XFA_Attribute::Role, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Assist::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* picture */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Picture::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0xa52682bd, L"{default}",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
-     XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Picture::defaultValue, XFA_Attribute::Unknown,
+     XFA_ScriptType::Basic},
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Picture::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
-    {0xd6e27f1d, L"value",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
+    {0xd6e27f1d, L"value", (XFA_ATTRIBUTE_CALLBACK)&CJX_Picture::value,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* traversal */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Traversal::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Traversal::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* silentPrint */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* webClient */
     {0x31b19c1, L"name",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Name, XFA_ScriptType::Basic},
@@ -1792,156 +2213,150 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* layoutPseudoModel */
     {0xfcef86b5, L"ready",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_LayoutPseudoModel::Ready,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_LayoutPseudoModel::ready,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
+
+    /* producer */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* corner */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Corner::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x5392ea58, L"stroke",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x5392ea58, L"stroke", (XFA_ATTRIBUTE_CALLBACK)&CJX_Corner::stroke,
      XFA_Attribute::Stroke, XFA_ScriptType::Basic},
-    {0x570ce835, L"presence",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x570ce835, L"presence", (XFA_ATTRIBUTE_CALLBACK)&CJX_Corner::presence,
      XFA_Attribute::Presence, XFA_ScriptType::Basic},
-    {0x7b95e661, L"inverted",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7b95e661, L"inverted", (XFA_ATTRIBUTE_CALLBACK)&CJX_Corner::inverted,
      XFA_Attribute::Inverted, XFA_ScriptType::Basic},
-    {0x94446dcc, L"thickness",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x94446dcc, L"thickness", (XFA_ATTRIBUTE_CALLBACK)&CJX_Corner::thickness,
      XFA_Attribute::Thickness, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Corner::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xe8dddf50, L"join",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xe8dddf50, L"join", (XFA_ATTRIBUTE_CALLBACK)&CJX_Corner::join,
      XFA_Attribute::Join, XFA_ScriptType::Basic},
-    {0xe948b9a8, L"radius",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xe948b9a8, L"radius", (XFA_ATTRIBUTE_CALLBACK)&CJX_Corner::radius,
      XFA_Attribute::Radius, XFA_ScriptType::Basic},
+
+    /* msgId */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* color */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Color::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xabfa6c4f, L"cSpace",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xabfa6c4f, L"cSpace", (XFA_ATTRIBUTE_CALLBACK)&CJX_Color::cSpace,
      XFA_Attribute::CSpace, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Color::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xd6e27f1d, L"value",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xd6e27f1d, L"value", (XFA_ATTRIBUTE_CALLBACK)&CJX_Color::value,
      XFA_Attribute::Value, XFA_ScriptType::Basic},
-    {0x3848b3f, L"next",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* keep */
+    {0x3848b3f, L"next", (XFA_ATTRIBUTE_CALLBACK)&CJX_Keep::next,
      XFA_Attribute::Next, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Keep::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x6a3405dd, L"previous",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x6a3405dd, L"previous", (XFA_ATTRIBUTE_CALLBACK)&CJX_Keep::previous,
      XFA_Attribute::Previous, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Keep::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xf6b59543, L"intact",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xf6b59543, L"intact", (XFA_ATTRIBUTE_CALLBACK)&CJX_Keep::intact,
      XFA_Attribute::Intact, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* query */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Query::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0x268b7ec1, L"commandType",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Query::commandType,
      XFA_Attribute::CommandType, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Query::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* insert */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Insert::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Insert::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* imageEdit */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_ImageEdit::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_ImageEdit::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xbde9abda, L"data",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbde9abda, L"data", (XFA_ATTRIBUTE_CALLBACK)&CJX_ImageEdit::data,
      XFA_Attribute::Data, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* validate */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Validate::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0x5b707a35, L"scriptTest",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Validate::scriptTest,
      XFA_Attribute::ScriptTest, XFA_ScriptType::Basic},
-    {0x6b6ddcfb, L"nullTest",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x6b6ddcfb, L"nullTest", (XFA_ATTRIBUTE_CALLBACK)&CJX_Validate::nullTest,
      XFA_Attribute::NullTest, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Validate::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xe64b1129, L"formatTest",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Validate::formatTest,
      XFA_Attribute::FormatTest, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* digestMethods */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_DigestMethods::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x2f16a382, L"type",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x2f16a382, L"type", (XFA_ATTRIBUTE_CALLBACK)&CJX_DigestMethods::type,
      XFA_Attribute::Type, XFA_ScriptType::Basic},
     {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_DigestMethods::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* numberPatterns */
+
+    /* pageSet */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_PageSet::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x8c99377e, L"relation",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x8c99377e, L"relation", (XFA_ATTRIBUTE_CALLBACK)&CJX_PageSet::relation,
      XFA_Attribute::Relation, XFA_ScriptType::Basic},
-    {0x8e1c2921, L"relevant",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x8e1c2921, L"relevant", (XFA_ATTRIBUTE_CALLBACK)&CJX_PageSet::relevant,
      XFA_Attribute::Relevant, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_PageSet::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* integer */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Integer::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0xa52682bd, L"{default}",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
-     XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Integer::defaultValue, XFA_Attribute::Unknown,
+     XFA_ScriptType::Basic},
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Integer::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xd6e27f1d, L"value",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
+    {0xd6e27f1d, L"value", (XFA_ATTRIBUTE_CALLBACK)&CJX_Integer::value,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* soapAddress */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_SoapAddress::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_SoapAddress::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* equate */
     {0x25363, L"to",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::To, XFA_ScriptType::Basic},
@@ -1957,30 +2372,37 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* formFieldFilling */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* pageRange */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* update */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Update::use,
+     XFA_Attribute::Use, XFA_ScriptType::Basic},
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Update::usehref,
+     XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* connectString */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_ConnectString::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_ConnectString::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* mode */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
@@ -1993,114 +2415,124 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* layout */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* #xml */
     {0xd6e27f1d, L"value",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Value, XFA_ScriptType::Basic},
+
+    /* xsdConnection */
     {0x2b5df51e, L"dataDescription",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_XsdConnection::dataDescription,
      XFA_Attribute::DataDescription, XFA_ScriptType::Basic},
-    {0xbb8df5d, L"ref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* traverse */
+    {0xbb8df5d, L"ref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Traverse::ref,
      XFA_Attribute::Ref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Traverse::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x226ca8f1, L"operation",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x226ca8f1, L"operation", (XFA_ATTRIBUTE_CALLBACK)&CJX_Traverse::operation,
      XFA_Attribute::Operation, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Traverse::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* encodings */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Encodings::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x2f16a382, L"type",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x2f16a382, L"type", (XFA_ATTRIBUTE_CALLBACK)&CJX_Encodings::type,
      XFA_Attribute::Type, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Encodings::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* template */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* acrobat */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* validationMessaging */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* signing */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Signing::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x2f16a382, L"type",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x2f16a382, L"type", (XFA_ATTRIBUTE_CALLBACK)&CJX_Signing::type,
      XFA_Attribute::Type, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Signing::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* dataWindow */
     {0xfb67185, L"recordsBefore",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_DataWindow::RecordsBefore,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_DataWindow::recordsBefore,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x21d5dfcb, L"currentRecordNumber",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_DataWindow::CurrentRecordNumber,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_DataWindow::currentRecordNumber,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x312af044, L"recordsAfter",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_DataWindow::RecordsAfter,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_DataWindow::recordsAfter,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0x6aab37cb, L"isDefined",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_DataWindow::IsDefined, XFA_Attribute::Unknown,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_DataWindow::isDefined, XFA_Attribute::Unknown,
      XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* script */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Script::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0x42fed1fd, L"contentType",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Script::contentType,
      XFA_Attribute::ContentType, XFA_ScriptType::Basic},
-    {0x6cfa828a, L"runAt",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x6cfa828a, L"runAt", (XFA_ATTRIBUTE_CALLBACK)&CJX_Script::runAt,
      XFA_Attribute::RunAt, XFA_ScriptType::Basic},
-    {0xa021b738, L"stateless",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Script_Stateless,
+    {0xa021b738, L"stateless", (XFA_ATTRIBUTE_CALLBACK)&CJX_Script::stateless,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0xa52682bd, L"{default}",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
-     XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xadc4c77b, L"binding",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Script::defaultValue, XFA_Attribute::Unknown,
+     XFA_ScriptType::Basic},
+    {0xadc4c77b, L"binding", (XFA_ATTRIBUTE_CALLBACK)&CJX_Script::binding,
      XFA_Attribute::Binding, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Script::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
-    {0xd6e27f1d, L"value",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
+    {0xd6e27f1d, L"value", (XFA_ATTRIBUTE_CALLBACK)&CJX_Script::value,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* addViewerPreferences */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* alwaysEmbed */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
@@ -2113,63 +2545,66 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* passwordEdit */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_PasswordEdit::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0x7a0cc471, L"passwordChar",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_PasswordEdit::passwordChar,
      XFA_Attribute::PasswordChar, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_PasswordEdit::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
     {0xe6f99487, L"hScrollPolicy",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_PasswordEdit::hScrollPolicy,
      XFA_Attribute::HScrollPolicy, XFA_ScriptType::Basic},
+
+    /* numericEdit */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_NumericEdit::use,
+     XFA_Attribute::Use, XFA_ScriptType::Basic},
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_NumericEdit::usehref,
+     XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+    {0xe6f99487, L"hScrollPolicy",
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_NumericEdit::hScrollPolicy,
+     XFA_Attribute::HScrollPolicy, XFA_ScriptType::Basic},
+
+    /* encryptionMethod */
     {0xc0811ed, L"use",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0xbc254332, L"usehref",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xe6f99487, L"hScrollPolicy",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::HScrollPolicy, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* change */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* pageArea */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_PageArea::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0x14a32d52, L"pagePosition",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_PageArea::pagePosition,
      XFA_Attribute::PagePosition, XFA_ScriptType::Basic},
-    {0x8340ea66, L"oddOrEven",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x8340ea66, L"oddOrEven", (XFA_ATTRIBUTE_CALLBACK)&CJX_PageArea::oddOrEven,
      XFA_Attribute::OddOrEven, XFA_ScriptType::Basic},
-    {0x8e1c2921, L"relevant",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x8e1c2921, L"relevant", (XFA_ATTRIBUTE_CALLBACK)&CJX_PageArea::relevant,
      XFA_Attribute::Relevant, XFA_ScriptType::Basic},
     {0xa85e74f3, L"initialNumber",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_PageArea::initialNumber,
      XFA_Attribute::InitialNumber, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_PageArea::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xbe9ba472, L"numbered",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbe9ba472, L"numbered", (XFA_ATTRIBUTE_CALLBACK)&CJX_PageArea::numbered,
      XFA_Attribute::Numbered, XFA_ScriptType::Basic},
     {0xd70798c2, L"blankOrNotBlank",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_PageArea::blankOrNotBlank,
      XFA_Attribute::BlankOrNotBlank, XFA_ScriptType::Basic},
+
+    /* submitUrl */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
@@ -2179,42 +2614,42 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* oids */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Oids::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x2f16a382, L"type",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x2f16a382, L"type", (XFA_ATTRIBUTE_CALLBACK)&CJX_Oids::type,
      XFA_Attribute::Type, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Oids::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* signature */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Signature::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Signature::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* aDBE_JSConsole */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* caption */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Caption::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x34ae103c, L"reserve",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x34ae103c, L"reserve", (XFA_ATTRIBUTE_CALLBACK)&CJX_Caption::reserve,
      XFA_Attribute::Reserve, XFA_ScriptType::Basic},
-    {0x570ce835, L"presence",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x570ce835, L"presence", (XFA_ATTRIBUTE_CALLBACK)&CJX_Caption::presence,
      XFA_Attribute::Presence, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Caption::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xf2009339, L"placement",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xf2009339, L"placement", (XFA_ATTRIBUTE_CALLBACK)&CJX_Caption::placement,
      XFA_Attribute::Placement, XFA_ScriptType::Basic},
+
+    /* relevant */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
@@ -2227,45 +2662,49 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* flipLabel */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* exData */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExData::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0x42fed1fd, L"contentType",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_ExData::contentType,
      XFA_Attribute::ContentType, XFA_ScriptType::Basic},
     {0x54fa722c, L"transferEncoding",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_ExData::transferEncoding,
      XFA_Attribute::TransferEncoding, XFA_ScriptType::Basic},
     {0xa52682bd, L"{default}",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
-     XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_ExData::defaultValue, XFA_Attribute::Unknown,
+     XFA_ScriptType::Basic},
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExData::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc4547a08, L"maxLength",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc4547a08, L"maxLength", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExData::maxLength,
      XFA_Attribute::MaxLength, XFA_ScriptType::Basic},
     {0xd6e27f1d, L"value",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xdb55fec5, L"href",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xdb55fec5, L"href", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExData::href,
      XFA_Attribute::Href, XFA_ScriptType::Basic},
+
+    /* dayNames */
     {0x29418bb7, L"abbr",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Abbr, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* soapAction */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_SoapAction::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_SoapAction::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* defaultTypeface */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
@@ -2275,66 +2714,66 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* manifest */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Manifest::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x1b8dce3e, L"action",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x1b8dce3e, L"action", (XFA_ATTRIBUTE_CALLBACK)&CJX_Manifest::action,
      XFA_Attribute::Action, XFA_ScriptType::Basic},
     {0xa52682bd, L"{default}",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Manifest::defaultValue,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Manifest::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* overflow */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Overflow::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x9dcc3ab3, L"trailer",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x9dcc3ab3, L"trailer", (XFA_ATTRIBUTE_CALLBACK)&CJX_Overflow::trailer,
      XFA_Attribute::Trailer, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Overflow::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc8da4da7, L"target",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc8da4da7, L"target", (XFA_ATTRIBUTE_CALLBACK)&CJX_Overflow::target,
      XFA_Attribute::Target, XFA_ScriptType::Basic},
-    {0xcbcaf66d, L"leader",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xcbcaf66d, L"leader", (XFA_ATTRIBUTE_CALLBACK)&CJX_Overflow::leader,
      XFA_Attribute::Leader, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* linear */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Linear::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x2f16a382, L"type",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x2f16a382, L"type", (XFA_ATTRIBUTE_CALLBACK)&CJX_Linear::type,
      XFA_Attribute::Type, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Linear::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* currencySymbol */
     {0x31b19c1, L"name",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Name, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* delete */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Delete::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Delete::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* deltas */
+
+    /* digestMethod */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_DigestMethod::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_DigestMethod::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xb3543a6, L"max",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_InstanceManager_Max,
+
+    /* instanceManager */
+    {0xb3543a6, L"max", (XFA_ATTRIBUTE_CALLBACK)&CJX_InstanceManager::max,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xb356ca4, L"min",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_InstanceManager_Min,
+    {0xb356ca4, L"min", (XFA_ATTRIBUTE_CALLBACK)&CJX_InstanceManager::min,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0x6f544d49, L"count",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_InstanceManager_Count,
+    {0x6f544d49, L"count", (XFA_ATTRIBUTE_CALLBACK)&CJX_InstanceManager::count,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
+
+    /* equateRange */
     {0x25363, L"to",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::To, XFA_ScriptType::Basic},
@@ -2350,45 +2789,43 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* medium */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Medium::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0x4ef3d02c, L"orientation",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Medium::orientation,
      XFA_Attribute::Orientation, XFA_ScriptType::Basic},
     {0x65e30c67, L"imagingBBox",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Medium::imagingBBox,
      XFA_Attribute::ImagingBBox, XFA_ScriptType::Basic},
-    {0x9041d4b0, L"short",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x9041d4b0, L"short", (XFA_ATTRIBUTE_CALLBACK)&CJX_Medium::shortValue,
      XFA_Attribute::Short, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Medium::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xe349d044, L"stock",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xe349d044, L"stock", (XFA_ATTRIBUTE_CALLBACK)&CJX_Medium::stock,
      XFA_Attribute::Stock, XFA_ScriptType::Basic},
-    {0xf6b4afb0, L"long",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xf6b4afb0, L"long", (XFA_ATTRIBUTE_CALLBACK)&CJX_Medium::longValue,
      XFA_Attribute::Long, XFA_ScriptType::Basic},
+
+    /* textEdit */
     {0x5ce6195, L"vScrollPolicy",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_TextEdit::vScrollPolicy,
      XFA_Attribute::VScrollPolicy, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_TextEdit::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0x1ef3a64a, L"allowRichText",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_TextEdit::allowRichText,
      XFA_Attribute::AllowRichText, XFA_ScriptType::Basic},
-    {0x5a32e493, L"multiLine",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x5a32e493, L"multiLine", (XFA_ATTRIBUTE_CALLBACK)&CJX_TextEdit::multiLine,
      XFA_Attribute::MultiLine, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_TextEdit::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
     {0xe6f99487, L"hScrollPolicy",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_TextEdit::hScrollPolicy,
      XFA_Attribute::HScrollPolicy, XFA_ScriptType::Basic},
+
+    /* templateCache */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
@@ -2398,123 +2835,139 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* compressObjectStream */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* dataValue */
     {0x42fed1fd, L"contentType",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_DataValue::contentType,
      XFA_Attribute::ContentType, XFA_ScriptType::Basic},
-    {0x8855805f, L"contains",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x8855805f, L"contains", (XFA_ATTRIBUTE_CALLBACK)&CJX_DataValue::contains,
      XFA_Attribute::Contains, XFA_ScriptType::Basic},
     {0xa52682bd, L"{default}",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_DataValue::defaultValue,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xd6e27f1d, L"value",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
+    {0xd6e27f1d, L"value", (XFA_ATTRIBUTE_CALLBACK)&CJX_DataValue::value,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xe372ae97, L"isNull",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
+    {0xe372ae97, L"isNull", (XFA_ATTRIBUTE_CALLBACK)&CJX_DataValue::isNull,
      XFA_Attribute::IsNull, XFA_ScriptType::Basic},
+
+    /* accessibleContent */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* nodeList */
+
+    /* includeXDPContent */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* xmlConnection */
     {0x2b5df51e, L"dataDescription",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_XmlConnection::dataDescription,
      XFA_Attribute::DataDescription, XFA_ScriptType::Basic},
+
+    /* validateApprovalSignatures */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xbb8df5d, L"ref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* signData */
+    {0xbb8df5d, L"ref", (XFA_ATTRIBUTE_CALLBACK)&CJX_SignData::ref,
      XFA_Attribute::Ref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_SignData::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x226ca8f1, L"operation",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x226ca8f1, L"operation", (XFA_ATTRIBUTE_CALLBACK)&CJX_SignData::operation,
      XFA_Attribute::Operation, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_SignData::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc8da4da7, L"target",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc8da4da7, L"target", (XFA_ATTRIBUTE_CALLBACK)&CJX_SignData::target,
      XFA_Attribute::Target, XFA_ScriptType::Basic},
+
+    /* packets */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* datePattern */
     {0x31b19c1, L"name",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Name, XFA_ScriptType::Basic},
+
+    /* duplexOption */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* base */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xbb8df5d, L"ref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* bind */
+    {0xbb8df5d, L"ref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Bind::ref,
      XFA_Attribute::Ref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Bind::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x42fed1fd, L"contentType",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x42fed1fd, L"contentType", (XFA_ATTRIBUTE_CALLBACK)&CJX_Bind::contentType,
      XFA_Attribute::ContentType, XFA_ScriptType::Basic},
     {0x54fa722c, L"transferEncoding",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Bind::transferEncoding,
      XFA_Attribute::TransferEncoding, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Bind::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xf197844d, L"match",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xf197844d, L"match", (XFA_ATTRIBUTE_CALLBACK)&CJX_Bind::match,
      XFA_Attribute::Match, XFA_ScriptType::Basic},
+
+    /* compression */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* user */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_User::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_User::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* rectangle */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Rectangle::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Rectangle::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xd996fa9b, L"hand",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xd996fa9b, L"hand", (XFA_ATTRIBUTE_CALLBACK)&CJX_Rectangle::hand,
      XFA_Attribute::Hand, XFA_ScriptType::Basic},
+
+    /* effectiveOutputPolicy */
     {0x21aed, L"id",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Id, XFA_ScriptType::Basic},
@@ -2527,68 +2980,77 @@
     {0xbc254332, L"usehref",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* aDBE_JSDebugger */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* acrobat7 */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* interactive */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* locale */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* currentPage */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* data */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* date */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Date::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xa52682bd, L"{default}",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
+    {0xa52682bd, L"{default}", (XFA_ATTRIBUTE_CALLBACK)&CJX_Date::defaultValue,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Date::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xd6e27f1d, L"value",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
+    {0xd6e27f1d, L"value", (XFA_ATTRIBUTE_CALLBACK)&CJX_Date::value,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* desc */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Desc::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Desc::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* encrypt */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Encrypt::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x28dee6e9, L"format",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Encrypt_Format,
+    {0x28dee6e9, L"format", (XFA_ATTRIBUTE_CALLBACK)&CJX_Encrypt::format,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Encrypt::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
@@ -2596,122 +3058,124 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0x68, L"h", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::H, XFA_ScriptType::Basic},
-    {0x77, L"w", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::W, XFA_ScriptType::Basic},
-    {0x78, L"x", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::X, XFA_ScriptType::Basic},
-    {0x79, L"y", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::Y, XFA_ScriptType::Basic},
-    {0x2282c73, L"hAlign",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* draw */
+    {0x68, L"h", (XFA_ATTRIBUTE_CALLBACK)&CJX_Draw::h, XFA_Attribute::H,
+     XFA_ScriptType::Basic},
+    {0x77, L"w", (XFA_ATTRIBUTE_CALLBACK)&CJX_Draw::w, XFA_Attribute::W,
+     XFA_ScriptType::Basic},
+    {0x78, L"x", (XFA_ATTRIBUTE_CALLBACK)&CJX_Draw::x, XFA_Attribute::X,
+     XFA_ScriptType::Basic},
+    {0x79, L"y", (XFA_ATTRIBUTE_CALLBACK)&CJX_Draw::y, XFA_Attribute::Y,
+     XFA_ScriptType::Basic},
+    {0x2282c73, L"hAlign", (XFA_ATTRIBUTE_CALLBACK)&CJX_Draw::hAlign,
      XFA_Attribute::HAlign, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Draw::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x2ee7678f, L"rotate",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x2ee7678f, L"rotate", (XFA_ATTRIBUTE_CALLBACK)&CJX_Draw::rotate,
      XFA_Attribute::Rotate, XFA_ScriptType::Basic},
-    {0x570ce835, L"presence",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x570ce835, L"presence", (XFA_ATTRIBUTE_CALLBACK)&CJX_Draw::presence,
      XFA_Attribute::Presence, XFA_ScriptType::Basic},
-    {0x7a7cc341, L"vAlign",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7a7cc341, L"vAlign", (XFA_ATTRIBUTE_CALLBACK)&CJX_Draw::vAlign,
      XFA_Attribute::VAlign, XFA_ScriptType::Basic},
-    {0x7c2ff6ae, L"maxH",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7c2ff6ae, L"maxH", (XFA_ATTRIBUTE_CALLBACK)&CJX_Draw::maxH,
      XFA_Attribute::MaxH, XFA_ScriptType::Basic},
-    {0x7c2ff6bd, L"maxW",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7c2ff6bd, L"maxW", (XFA_ATTRIBUTE_CALLBACK)&CJX_Draw::maxW,
      XFA_Attribute::MaxW, XFA_ScriptType::Basic},
-    {0x7d02356c, L"minH",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7d02356c, L"minH", (XFA_ATTRIBUTE_CALLBACK)&CJX_Draw::minH,
      XFA_Attribute::MinH, XFA_ScriptType::Basic},
-    {0x7d02357b, L"minW",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7d02357b, L"minW", (XFA_ATTRIBUTE_CALLBACK)&CJX_Draw::minW,
      XFA_Attribute::MinW, XFA_ScriptType::Basic},
-    {0x8e1c2921, L"relevant",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x8e1c2921, L"relevant", (XFA_ATTRIBUTE_CALLBACK)&CJX_Draw::relevant,
      XFA_Attribute::Relevant, XFA_ScriptType::Basic},
-    {0xa03cf627, L"rawValue",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
+    {0xa03cf627, L"rawValue", (XFA_ATTRIBUTE_CALLBACK)&CJX_Draw::rawValue,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xa52682bd, L"{default}",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
+    {0xa52682bd, L"{default}", (XFA_ATTRIBUTE_CALLBACK)&CJX_Draw::defaultValue,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xac06e2b0, L"colSpan",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xac06e2b0, L"colSpan", (XFA_ATTRIBUTE_CALLBACK)&CJX_Draw::colSpan,
      XFA_Attribute::ColSpan, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Draw::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xbc8fa350, L"locale",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc8fa350, L"locale", (XFA_ATTRIBUTE_CALLBACK)&CJX_Draw::locale,
      XFA_Attribute::Locale, XFA_ScriptType::Basic},
-    {0xc2bd40fd, L"anchorType",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc2bd40fd, L"anchorType", (XFA_ATTRIBUTE_CALLBACK)&CJX_Draw::anchorType,
      XFA_Attribute::AnchorType, XFA_ScriptType::Basic},
+
+    /* encryption */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* meridiemNames */
+
+    /* messaging */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* speak */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Speak::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x39cdb0a2, L"priority",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x39cdb0a2, L"priority", (XFA_ATTRIBUTE_CALLBACK)&CJX_Speak::priority,
      XFA_Attribute::Priority, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Speak::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xeb511b54, L"disable",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xeb511b54, L"disable", (XFA_ATTRIBUTE_CALLBACK)&CJX_Speak::disable,
      XFA_Attribute::Disable, XFA_ScriptType::Basic},
+
+    /* dataGroup */
+
+    /* common */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* #text */
     {0xd6e27f1d, L"value",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Value, XFA_ScriptType::Basic},
+
+    /* paginationOverride */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* reasons */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Reasons::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x2f16a382, L"type",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x2f16a382, L"type", (XFA_ATTRIBUTE_CALLBACK)&CJX_Reasons::type,
      XFA_Attribute::Type, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Reasons::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* signatureProperties */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_SignatureProperties::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
     {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_SignatureProperties::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* threshold */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* appearanceFilter */
     {0x21aed, L"id",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Id, XFA_ScriptType::Basic},
@@ -2724,171 +3188,170 @@
     {0xbc254332, L"usehref",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* fill */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Fill::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x570ce835, L"presence",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x570ce835, L"presence", (XFA_ATTRIBUTE_CALLBACK)&CJX_Fill::presence,
      XFA_Attribute::Presence, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Fill::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xcb0ac9, L"lineThrough",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* font */
+    {0xcb0ac9, L"lineThrough", (XFA_ATTRIBUTE_CALLBACK)&CJX_Font::lineThrough,
      XFA_Attribute::LineThrough, XFA_ScriptType::Basic},
-    {0x2c1c7f1, L"typeface",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x2c1c7f1, L"typeface", (XFA_ATTRIBUTE_CALLBACK)&CJX_Font::typeface,
      XFA_Attribute::Typeface, XFA_ScriptType::Basic},
     {0x8c74ae9, L"fontHorizontalScale",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Font::fontHorizontalScale,
      XFA_Attribute::FontHorizontalScale, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Font::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x2cd79033, L"kerningMode",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x2cd79033, L"kerningMode", (XFA_ATTRIBUTE_CALLBACK)&CJX_Font::kerningMode,
      XFA_Attribute::KerningMode, XFA_ScriptType::Basic},
-    {0x3a0273a6, L"underline",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x3a0273a6, L"underline", (XFA_ATTRIBUTE_CALLBACK)&CJX_Font::underline,
      XFA_Attribute::Underline, XFA_ScriptType::Basic},
     {0x4873c601, L"baselineShift",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Font::baselineShift,
      XFA_Attribute::BaselineShift, XFA_ScriptType::Basic},
     {0x4b319767, L"overlinePeriod",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Font::overlinePeriod,
      XFA_Attribute::OverlinePeriod, XFA_ScriptType::Basic},
     {0x79543055, L"letterSpacing",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Font::letterSpacing,
      XFA_Attribute::LetterSpacing, XFA_ScriptType::Basic},
     {0x8ec6204c, L"lineThroughPeriod",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Font::lineThroughPeriod,
      XFA_Attribute::LineThroughPeriod, XFA_ScriptType::Basic},
     {0x907c7719, L"fontVerticalScale",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Font::fontVerticalScale,
      XFA_Attribute::FontVerticalScale, XFA_ScriptType::Basic},
-    {0xa686975b, L"size",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xa686975b, L"size", (XFA_ATTRIBUTE_CALLBACK)&CJX_Font::size,
      XFA_Attribute::Size, XFA_ScriptType::Basic},
-    {0xb5e49bf2, L"posture",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xb5e49bf2, L"posture", (XFA_ATTRIBUTE_CALLBACK)&CJX_Font::posture,
      XFA_Attribute::Posture, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Font::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xbd6e1d88, L"weight",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbd6e1d88, L"weight", (XFA_ATTRIBUTE_CALLBACK)&CJX_Font::weight,
      XFA_Attribute::Weight, XFA_ScriptType::Basic},
     {0xbd96a0e9, L"underlinePeriod",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Font::underlinePeriod,
      XFA_Attribute::UnderlinePeriod, XFA_ScriptType::Basic},
-    {0xc0ec9fa4, L"overline",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0ec9fa4, L"overline", (XFA_ATTRIBUTE_CALLBACK)&CJX_Font::overline,
      XFA_Attribute::Overline, XFA_ScriptType::Basic},
+
+    /* form */
     {0xaf754613, L"checksum",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Form_Checksum,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
+
+    /* mediumInfo */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* certificate */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Certificate::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Certificate::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* password */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Password::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Password::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* runScripts */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* trace */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* float */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Float::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xa52682bd, L"{default}",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
+    {0xa52682bd, L"{default}", (XFA_ATTRIBUTE_CALLBACK)&CJX_Float::defaultValue,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Float::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xd6e27f1d, L"value",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
+    {0xd6e27f1d, L"value", (XFA_ATTRIBUTE_CALLBACK)&CJX_Float::value,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
+
+    /* renderPolicy */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* logPseudoModel */
+
+    /* destination */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* value */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Value::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x8e1c2921, L"relevant",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x8e1c2921, L"relevant", (XFA_ATTRIBUTE_CALLBACK)&CJX_Value::relevant,
      XFA_Attribute::Relevant, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Value::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xea7090a0, L"override",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
+    {0xea7090a0, L"override", (XFA_ATTRIBUTE_CALLBACK)&CJX_Value::override,
      XFA_Attribute::Override, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* bookend */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Bookend::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x9dcc3ab3, L"trailer",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x9dcc3ab3, L"trailer", (XFA_ATTRIBUTE_CALLBACK)&CJX_Bookend::trailer,
      XFA_Attribute::Trailer, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Bookend::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xcbcaf66d, L"leader",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xcbcaf66d, L"leader", (XFA_ATTRIBUTE_CALLBACK)&CJX_Bookend::leader,
      XFA_Attribute::Leader, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* exObject */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExObject::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x60a61edd, L"codeType",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x60a61edd, L"codeType", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExObject::codeType,
      XFA_Attribute::CodeType, XFA_ScriptType::Basic},
-    {0xb373a862, L"archive",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xb373a862, L"archive", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExObject::archive,
      XFA_Attribute::Archive, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExObject::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xe1a26b56, L"codeBase",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xe1a26b56, L"codeBase", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExObject::codeBase,
      XFA_Attribute::CodeBase, XFA_ScriptType::Basic},
-    {0xeb091003, L"classId",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xeb091003, L"classId", (XFA_ATTRIBUTE_CALLBACK)&CJX_ExObject::classId,
      XFA_Attribute::ClassId, XFA_ScriptType::Basic},
+
+    /* openAction */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* neverEmbed */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
@@ -2901,114 +3364,124 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* bindItems */
     {0x47d03490, L"connection",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_BindItems::connection,
      XFA_Attribute::Connection, XFA_ScriptType::Basic},
-    {0xc39a88bd, L"labelRef",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc39a88bd, L"labelRef", (XFA_ATTRIBUTE_CALLBACK)&CJX_BindItems::labelRef,
      XFA_Attribute::LabelRef, XFA_ScriptType::Basic},
-    {0xd50f903a, L"valueRef",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xd50f903a, L"valueRef", (XFA_ATTRIBUTE_CALLBACK)&CJX_BindItems::valueRef,
      XFA_Attribute::ValueRef, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* calculate */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Calculate::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Calculate::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xea7090a0, L"override",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xea7090a0, L"override", (XFA_ATTRIBUTE_CALLBACK)&CJX_Calculate::override,
      XFA_Attribute::Override, XFA_ScriptType::Basic},
+
+    /* print */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* extras */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Extras::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x2f16a382, L"type",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Extras_Type,
+    {0x2f16a382, L"type", (XFA_ATTRIBUTE_CALLBACK)&CJX_Extras::type,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Extras::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* proto */
+
+    /* dSigData */
+
+    /* creator */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xbb8df5d, L"ref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* connect */
+    {0xbb8df5d, L"ref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Connect::ref,
      XFA_Attribute::Ref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Connect::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x24d85167, L"timeout",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x24d85167, L"timeout", (XFA_ATTRIBUTE_CALLBACK)&CJX_Connect::timeout,
      XFA_Attribute::Timeout, XFA_ScriptType::Basic},
     {0x47d03490, L"connection",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Connect::connection,
      XFA_Attribute::Connection, XFA_ScriptType::Basic},
-    {0x552d9ad5, L"usage",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x552d9ad5, L"usage", (XFA_ATTRIBUTE_CALLBACK)&CJX_Connect::usage,
      XFA_Attribute::Usage, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Connect::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
     {0xc860f30a, L"delayedOpen",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Connect::delayedOpen,
      XFA_Attribute::DelayedOpen, XFA_ScriptType::Basic},
+
+    /* permissions */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* connectionSet */
+
+    /* submit */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Submit::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x28dee6e9, L"format",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x28dee6e9, L"format", (XFA_ATTRIBUTE_CALLBACK)&CJX_Submit::format,
      XFA_Attribute::Format, XFA_ScriptType::Basic},
-    {0x824f21b7, L"embedPDF",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x824f21b7, L"embedPDF", (XFA_ATTRIBUTE_CALLBACK)&CJX_Submit::embedPDF,
      XFA_Attribute::EmbedPDF, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Submit::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc8da4da7, L"target",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc8da4da7, L"target", (XFA_ATTRIBUTE_CALLBACK)&CJX_Submit::target,
      XFA_Attribute::Target, XFA_ScriptType::Basic},
     {0xdc75676c, L"textEncoding",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_Submit::textEncoding,
      XFA_Attribute::TextEncoding, XFA_ScriptType::Basic},
-    {0xf889e747, L"xdpContent",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xf889e747, L"xdpContent", (XFA_ATTRIBUTE_CALLBACK)&CJX_Submit::xdpContent,
      XFA_Attribute::XdpContent, XFA_ScriptType::Basic},
+
+    /* range */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* linearized */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0x97be91b, L"content",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Packet_Content,
+
+    /* packet */
+    {0x97be91b, L"content", (XFA_ATTRIBUTE_CALLBACK)&CJX_Packet::content,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* rootElement */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_RootElement::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_RootElement::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* plaintextMetadata */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
@@ -3021,18 +3494,26 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* numberSymbols */
+
+    /* printHighQuality */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* driver */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* incrementalLoad */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
@@ -3045,36 +3526,45 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* subjectDN */
     {0x4156ee3f, L"delimiter",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_SubjectDN::delimiter,
      XFA_Attribute::Delimiter, XFA_ScriptType::Basic},
+
+    /* compressLogicalStructure */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* incrementalMerge */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* radial */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Radial::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x2f16a382, L"type",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x2f16a382, L"type", (XFA_ATTRIBUTE_CALLBACK)&CJX_Radial::type,
      XFA_Attribute::Type, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Radial::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* variables */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Variables::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Variables::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* timePatterns */
+
+    /* effectiveInputPolicy */
     {0x21aed, L"id",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Id, XFA_ScriptType::Basic},
@@ -3087,6 +3577,8 @@
     {0xbc254332, L"usehref",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* nameAttr */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
@@ -3099,12 +3591,16 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* conformance */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* transform */
     {0xbb8df5d, L"ref",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Ref, XFA_ScriptType::Basic},
@@ -3114,6 +3610,8 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* lockDocument */
     {0x21aed, L"id",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Id, XFA_ScriptType::Basic},
@@ -3126,71 +3624,72 @@
     {0xbc254332, L"usehref",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* breakAfter */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_BreakAfter::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x453eaf38, L"startNew",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x453eaf38, L"startNew", (XFA_ATTRIBUTE_CALLBACK)&CJX_BreakAfter::startNew,
      XFA_Attribute::StartNew, XFA_ScriptType::Basic},
-    {0x9dcc3ab3, L"trailer",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x9dcc3ab3, L"trailer", (XFA_ATTRIBUTE_CALLBACK)&CJX_BreakAfter::trailer,
      XFA_Attribute::Trailer, XFA_ScriptType::Basic},
     {0xa6118c89, L"targetType",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+     (XFA_ATTRIBUTE_CALLBACK)&CJX_BreakAfter::targetType,
      XFA_Attribute::TargetType, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_BreakAfter::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xc8da4da7, L"target",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc8da4da7, L"target", (XFA_ATTRIBUTE_CALLBACK)&CJX_BreakAfter::target,
      XFA_Attribute::Target, XFA_ScriptType::Basic},
-    {0xcbcaf66d, L"leader",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xcbcaf66d, L"leader", (XFA_ATTRIBUTE_CALLBACK)&CJX_BreakAfter::leader,
      XFA_Attribute::Leader, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* line */
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Line::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xabef37e3, L"slope",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xabef37e3, L"slope", (XFA_ATTRIBUTE_CALLBACK)&CJX_Line::slope,
      XFA_Attribute::Slope, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Line::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xd996fa9b, L"hand",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xd996fa9b, L"hand", (XFA_ATTRIBUTE_CALLBACK)&CJX_Line::hand,
      XFA_Attribute::Hand, XFA_ScriptType::Basic},
+
+    /* list */
     {0xa60dd202, L"length", (XFA_ATTRIBUTE_CALLBACK)&CJX_List::length,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0x20146, L"db", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Source_Db,
+
+    /* source */
+    {0x20146, L"db", (XFA_ATTRIBUTE_CALLBACK)&CJX_Source::db,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Source::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Source::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xb3543a6, L"max", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Occur_Max,
+
+    /* occur */
+    {0xb3543a6, L"max", (XFA_ATTRIBUTE_CALLBACK)&CJX_Occur::max,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xb356ca4, L"min", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Occur_Min,
+    {0xb356ca4, L"min", (XFA_ATTRIBUTE_CALLBACK)&CJX_Occur::min,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Occur::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x7d0b5fca, L"initial",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x7d0b5fca, L"initial", (XFA_ATTRIBUTE_CALLBACK)&CJX_Occur::initial,
      XFA_Attribute::Initial, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Occur::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
+
+    /* pickTrayByPDFSize */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* monthNames */
     {0x29418bb7, L"abbr",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Abbr, XFA_ScriptType::Basic},
+
+    /* severity */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
@@ -3203,49 +3702,60 @@
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* groupParent */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* documentAssembly */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
+
+    /* numberSymbol */
     {0x31b19c1, L"name",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Name, XFA_ScriptType::Basic},
+
+    /* tagged */
     {0xbe52dfbf, L"desc",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
      XFA_Attribute::Desc, XFA_ScriptType::Basic},
     {0xf6b47749, L"lock",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_BOOL,
      XFA_Attribute::Lock, XFA_ScriptType::Basic},
-    {0xbb8df5d, L"ref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* items */
+    {0xbb8df5d, L"ref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Items::ref,
      XFA_Attribute::Ref, XFA_ScriptType::Basic},
-    {0xc0811ed, L"use",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xc0811ed, L"use", (XFA_ATTRIBUTE_CALLBACK)&CJX_Items::use,
      XFA_Attribute::Use, XFA_ScriptType::Basic},
-    {0x570ce835, L"presence",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0x570ce835, L"presence", (XFA_ATTRIBUTE_CALLBACK)&CJX_Items::presence,
      XFA_Attribute::Presence, XFA_ScriptType::Basic},
-    {0xa5b410cf, L"save",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xa5b410cf, L"save", (XFA_ATTRIBUTE_CALLBACK)&CJX_Items::save,
      XFA_Attribute::Save, XFA_ScriptType::Basic},
-    {0xbc254332, L"usehref",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+    {0xbc254332, L"usehref", (XFA_ATTRIBUTE_CALLBACK)&CJX_Items::usehref,
      XFA_Attribute::Usehref, XFA_ScriptType::Basic},
-    {0xb2c80857, L"className",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_ObjectClass_ClassName,
+
+    /* object */
+    {0xb2c80857, L"className", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::className,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xa60dd202, L"length", (XFA_ATTRIBUTE_CALLBACK)&CJX_TreeList::length,
+
+    /* list */
+    {0xa60dd202, L"length", (XFA_ATTRIBUTE_CALLBACK)&CJX_List::length,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0x31b19c1, L"name",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
+
+    /* [unknown] */
+
+    /* tree */
+    {0x31b19c1, L"name", (XFA_ATTRIBUTE_CALLBACK)&CJX_Tree::name,
      XFA_Attribute::Name, XFA_ScriptType::Basic},
     {0x9f9d0f9, L"all", (XFA_ATTRIBUTE_CALLBACK)&CJX_Tree::all,
      XFA_Attribute::Unknown, XFA_ScriptType::Object},
@@ -3262,29 +3772,32 @@
     {0xe4989adf, L"somExpression",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Tree::somExpression, XFA_Attribute::Unknown,
      XFA_ScriptType::Basic},
-    {0x21aed, L"id",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Attribute_String,
-     XFA_Attribute::Id, XFA_ScriptType::Basic},
-    {0x234a1, L"ns", (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_NodeClass_Ns,
+
+    /* node */
+    {0x21aed, L"id", (XFA_ATTRIBUTE_CALLBACK)&CJX_Node::id, XFA_Attribute::Id,
+     XFA_ScriptType::Basic},
+    {0x234a1, L"ns", (XFA_ATTRIBUTE_CALLBACK)&CJX_Node::ns,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0x50d1a9d1, L"model",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_NodeClass_Model,
+    {0x50d1a9d1, L"model", (XFA_ATTRIBUTE_CALLBACK)&CJX_Node::model,
      XFA_Attribute::Unknown, XFA_ScriptType::Object},
-    {0xacb4823f, L"isContainer",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_NodeClass_IsContainer,
+    {0xacb4823f, L"isContainer", (XFA_ATTRIBUTE_CALLBACK)&CJX_Node::isContainer,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xe372ae97, L"isNull",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_NodeClass_IsNull,
+    {0xe372ae97, L"isNull", (XFA_ATTRIBUTE_CALLBACK)&CJX_Node::isNull,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},
-    {0xfe612a5b, L"oneOfChild",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_NodeClass_OneOfChild,
+    {0xfe612a5b, L"oneOfChild", (XFA_ATTRIBUTE_CALLBACK)&CJX_Node::oneOfChild,
      XFA_Attribute::Unknown, XFA_ScriptType::Object},
-    {0x97c1c65, L"context",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_ModelClass_Context,
+
+    /* [unknown] */
+
+    /* [unknown] */
+
+    /* model */
+    {0x97c1c65, L"context", (XFA_ATTRIBUTE_CALLBACK)&CJX_Model::context,
      XFA_Attribute::Unknown, XFA_ScriptType::Object},
-    {0x58be2870, L"aliasNode",
-     (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_ModelClass_AliasNode,
+    {0x58be2870, L"aliasNode", (XFA_ATTRIBUTE_CALLBACK)&CJX_Model::aliasNode,
      XFA_Attribute::Unknown, XFA_ScriptType::Object},
+
+    /* [unknown] */
     {0xa52682bd, L"{default}",
      (XFA_ATTRIBUTE_CALLBACK)&CJX_Object::Script_Som_DefaultValue,
      XFA_Attribute::Unknown, XFA_ScriptType::Basic},