diff --git a/fxjs/xfa/cjx_issuers.cpp b/fxjs/xfa/cjx_issuers.cpp
index 4fe7078..b1ec2fd 100644
--- a/fxjs/xfa/cjx_issuers.cpp
+++ b/fxjs/xfa/cjx_issuers.cpp
@@ -11,21 +11,3 @@
 CJX_Issuers::CJX_Issuers(CXFA_Issuers* node) : CJX_Node(node) {}
 
 CJX_Issuers::~CJX_Issuers() = default;
-
-void CJX_Issuers::type(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Issuers::usehref(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Issuers::use(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_issuers.h b/fxjs/xfa/cjx_issuers.h
index 23a7457..1824fda 100644
--- a/fxjs/xfa/cjx_issuers.h
+++ b/fxjs/xfa/cjx_issuers.h
@@ -16,10 +16,6 @@
  public:
   explicit CJX_Issuers(CXFA_Issuers* node);
   ~CJX_Issuers() override;
-
-  JSE_PROP(type);
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_ISSUERS_H_
diff --git a/fxjs/xfa/cjx_manifest.cpp b/fxjs/xfa/cjx_manifest.cpp
index d8c95cb..555e6f2 100644
--- a/fxjs/xfa/cjx_manifest.cpp
+++ b/fxjs/xfa/cjx_manifest.cpp
@@ -37,21 +37,3 @@
                                 XFA_Attribute eAttribute) {
   ScriptSomDefaultValue(pValue, bSetting, eAttribute);
 }
-
-void CJX_Manifest::action(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Manifest::use(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Manifest::usehref(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_manifest.h b/fxjs/xfa/cjx_manifest.h
index 717e1f1..813691c 100644
--- a/fxjs/xfa/cjx_manifest.h
+++ b/fxjs/xfa/cjx_manifest.h
@@ -20,9 +20,6 @@
   JSE_METHOD(evaluate, CJX_Manifest);
 
   JSE_PROP(defaultValue); /* {default} */
-  JSE_PROP(action);
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 
  private:
   static const CJX_MethodSpec MethodSpecs[];
diff --git a/fxjs/xfa/cjx_map.cpp b/fxjs/xfa/cjx_map.cpp
index ab6dadf..f02cc8b 100644
--- a/fxjs/xfa/cjx_map.cpp
+++ b/fxjs/xfa/cjx_map.cpp
@@ -11,27 +11,3 @@
 CJX_Map::CJX_Map(CXFA_Map* node) : CJX_Node(node) {}
 
 CJX_Map::~CJX_Map() = default;
-
-void CJX_Map::use(CFXJSE_Value* pValue,
-                  bool bSetting,
-                  XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Map::bind(CFXJSE_Value* pValue,
-                   bool bSetting,
-                   XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Map::usehref(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Map::from(CFXJSE_Value* pValue,
-                   bool bSetting,
-                   XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_map.h b/fxjs/xfa/cjx_map.h
index 8178384..2ba5d4e 100644
--- a/fxjs/xfa/cjx_map.h
+++ b/fxjs/xfa/cjx_map.h
@@ -16,11 +16,6 @@
  public:
   explicit CJX_Map(CXFA_Map* node);
   ~CJX_Map() override;
-
-  JSE_PROP(bind);
-  JSE_PROP(from);
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_MAP_H_
diff --git a/fxjs/xfa/cjx_margin.cpp b/fxjs/xfa/cjx_margin.cpp
index 6c99f5d..4e6e7a3 100644
--- a/fxjs/xfa/cjx_margin.cpp
+++ b/fxjs/xfa/cjx_margin.cpp
@@ -11,39 +11,3 @@
 CJX_Margin::CJX_Margin(CXFA_Margin* node) : CJX_Node(node) {}
 
 CJX_Margin::~CJX_Margin() = default;
-
-void CJX_Margin::use(CFXJSE_Value* pValue,
-                     bool bSetting,
-                     XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Margin::leftInset(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Margin::bottomInset(CFXJSE_Value* pValue,
-                             bool bSetting,
-                             XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Margin::topInset(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Margin::rightInset(CFXJSE_Value* pValue,
-                            bool bSetting,
-                            XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Margin::usehref(CFXJSE_Value* pValue,
-                         bool bSetting,
-                         XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_margin.h b/fxjs/xfa/cjx_margin.h
index 6cac5a3..90371ed 100644
--- a/fxjs/xfa/cjx_margin.h
+++ b/fxjs/xfa/cjx_margin.h
@@ -16,13 +16,6 @@
  public:
   explicit CJX_Margin(CXFA_Margin* node);
   ~CJX_Margin() override;
-
-  JSE_PROP(bottomInset);
-  JSE_PROP(leftInset);
-  JSE_PROP(rightInset);
-  JSE_PROP(topInset);
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_MARGIN_H_
diff --git a/fxjs/xfa/cjx_mdp.cpp b/fxjs/xfa/cjx_mdp.cpp
index ce29293..cbf87e6 100644
--- a/fxjs/xfa/cjx_mdp.cpp
+++ b/fxjs/xfa/cjx_mdp.cpp
@@ -11,27 +11,3 @@
 CJX_Mdp::CJX_Mdp(CXFA_Mdp* node) : CJX_Node(node) {}
 
 CJX_Mdp::~CJX_Mdp() = default;
-
-void CJX_Mdp::use(CFXJSE_Value* pValue,
-                  bool bSetting,
-                  XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Mdp::signatureType(CFXJSE_Value* pValue,
-                            bool bSetting,
-                            XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Mdp::usehref(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Mdp::permissions(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_mdp.h b/fxjs/xfa/cjx_mdp.h
index 833e2db..263d56b 100644
--- a/fxjs/xfa/cjx_mdp.h
+++ b/fxjs/xfa/cjx_mdp.h
@@ -16,11 +16,6 @@
  public:
   explicit CJX_Mdp(CXFA_Mdp* node);
   ~CJX_Mdp() override;
-
-  JSE_PROP(permissions);
-  JSE_PROP(signatureType);
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_MDP_H_
diff --git a/fxjs/xfa/cjx_medium.cpp b/fxjs/xfa/cjx_medium.cpp
index 41ccfb2..7354190 100644
--- a/fxjs/xfa/cjx_medium.cpp
+++ b/fxjs/xfa/cjx_medium.cpp
@@ -11,45 +11,3 @@
 CJX_Medium::CJX_Medium(CXFA_Medium* node) : CJX_Node(node) {}
 
 CJX_Medium::~CJX_Medium() = default;
-
-void CJX_Medium::use(CFXJSE_Value* pValue,
-                     bool bSetting,
-                     XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Medium::orientation(CFXJSE_Value* pValue,
-                             bool bSetting,
-                             XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Medium::imagingBBox(CFXJSE_Value* pValue,
-                             bool bSetting,
-                             XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Medium::shortValue(CFXJSE_Value* pValue,
-                            bool bSetting,
-                            XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Medium::usehref(CFXJSE_Value* pValue,
-                         bool bSetting,
-                         XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Medium::stock(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Medium::longValue(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_medium.h b/fxjs/xfa/cjx_medium.h
index 1efb34b..9407304 100644
--- a/fxjs/xfa/cjx_medium.h
+++ b/fxjs/xfa/cjx_medium.h
@@ -16,14 +16,6 @@
  public:
   explicit CJX_Medium(CXFA_Medium* node);
   ~CJX_Medium() override;
-
-  JSE_PROP(imagingBBox);
-  JSE_PROP(longValue); /* long */
-  JSE_PROP(orientation);
-  JSE_PROP(shortValue); /* short */
-  JSE_PROP(stock);
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_MEDIUM_H_
diff --git a/fxjs/xfa/cjx_message.cpp b/fxjs/xfa/cjx_message.cpp
index 13ae53b..1f1f7f1 100644
--- a/fxjs/xfa/cjx_message.cpp
+++ b/fxjs/xfa/cjx_message.cpp
@@ -11,15 +11,3 @@
 CJX_Message::CJX_Message(CXFA_Message* node) : CJX_Node(node) {}
 
 CJX_Message::~CJX_Message() = default;
-
-void CJX_Message::use(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Message::usehref(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_message.h b/fxjs/xfa/cjx_message.h
index f5c577c..e68d9fe 100644
--- a/fxjs/xfa/cjx_message.h
+++ b/fxjs/xfa/cjx_message.h
@@ -16,9 +16,6 @@
  public:
   explicit CJX_Message(CXFA_Message* node);
   ~CJX_Message() override;
-
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_MESSAGE_H_
diff --git a/fxjs/xfa/cjx_node.cpp b/fxjs/xfa/cjx_node.cpp
index 49e8b96..623839d 100644
--- a/fxjs/xfa/cjx_node.cpp
+++ b/fxjs/xfa/cjx_node.cpp
@@ -436,12 +436,6 @@
   return CJS_Result::Success();
 }
 
-void CJX_Node::id(CFXJSE_Value* pValue,
-                  bool bSetting,
-                  XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
 void CJX_Node::ns(CFXJSE_Value* pValue,
                   bool bSetting,
                   XFA_Attribute eAttribute) {
diff --git a/fxjs/xfa/cjx_node.h b/fxjs/xfa/cjx_node.h
index b73b4fb..948ec85 100644
--- a/fxjs/xfa/cjx_node.h
+++ b/fxjs/xfa/cjx_node.h
@@ -30,7 +30,6 @@
   JSE_METHOD(setAttribute, CJX_Node);
   JSE_METHOD(setElement, CJX_Node);
 
-  JSE_PROP(id);
   JSE_PROP(isContainer);
   JSE_PROP(isNull);
   JSE_PROP(model);
diff --git a/fxjs/xfa/cjx_numericedit.cpp b/fxjs/xfa/cjx_numericedit.cpp
index 2f5af95..f8c76db 100644
--- a/fxjs/xfa/cjx_numericedit.cpp
+++ b/fxjs/xfa/cjx_numericedit.cpp
@@ -11,21 +11,3 @@
 CJX_NumericEdit::CJX_NumericEdit(CXFA_NumericEdit* node) : CJX_Node(node) {}
 
 CJX_NumericEdit::~CJX_NumericEdit() = default;
-
-void CJX_NumericEdit::use(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_NumericEdit::usehref(CFXJSE_Value* pValue,
-                              bool bSetting,
-                              XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_NumericEdit::hScrollPolicy(CFXJSE_Value* pValue,
-                                    bool bSetting,
-                                    XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_numericedit.h b/fxjs/xfa/cjx_numericedit.h
index d74b0c8..b03c68c 100644
--- a/fxjs/xfa/cjx_numericedit.h
+++ b/fxjs/xfa/cjx_numericedit.h
@@ -16,10 +16,6 @@
  public:
   explicit CJX_NumericEdit(CXFA_NumericEdit* node);
   ~CJX_NumericEdit() override;
-
-  JSE_PROP(hScrollPolicy);
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_NUMERICEDIT_H_
diff --git a/fxjs/xfa/cjx_occur.cpp b/fxjs/xfa/cjx_occur.cpp
index 2bce74b..9a8f47f 100644
--- a/fxjs/xfa/cjx_occur.cpp
+++ b/fxjs/xfa/cjx_occur.cpp
@@ -36,21 +36,3 @@
   }
   occur->SetMin(pValue->ToInteger());
 }
-
-void CJX_Occur::use(CFXJSE_Value* pValue,
-                    bool bSetting,
-                    XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Occur::initial(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Occur::usehref(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_occur.h b/fxjs/xfa/cjx_occur.h
index 114f5b3..19899a6 100644
--- a/fxjs/xfa/cjx_occur.h
+++ b/fxjs/xfa/cjx_occur.h
@@ -17,11 +17,8 @@
   explicit CJX_Occur(CXFA_Occur* node);
   ~CJX_Occur() override;
 
-  JSE_PROP(initial);
   JSE_PROP(max);
   JSE_PROP(min);
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_OCCUR_H_
diff --git a/fxjs/xfa/cjx_oid.cpp b/fxjs/xfa/cjx_oid.cpp
index e6c3a01..8e7ecdc 100644
--- a/fxjs/xfa/cjx_oid.cpp
+++ b/fxjs/xfa/cjx_oid.cpp
@@ -11,15 +11,3 @@
 CJX_Oid::CJX_Oid(CXFA_Oid* node) : CJX_TextNode(node) {}
 
 CJX_Oid::~CJX_Oid() = default;
-
-void CJX_Oid::use(CFXJSE_Value* pValue,
-                  bool bSetting,
-                  XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Oid::usehref(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_oid.h b/fxjs/xfa/cjx_oid.h
index f3c528e..62b9c54 100644
--- a/fxjs/xfa/cjx_oid.h
+++ b/fxjs/xfa/cjx_oid.h
@@ -16,9 +16,6 @@
  public:
   explicit CJX_Oid(CXFA_Oid* node);
   ~CJX_Oid() override;
-
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_OID_H_
diff --git a/fxjs/xfa/cjx_oids.cpp b/fxjs/xfa/cjx_oids.cpp
index aa4e041..225eb43 100644
--- a/fxjs/xfa/cjx_oids.cpp
+++ b/fxjs/xfa/cjx_oids.cpp
@@ -11,21 +11,3 @@
 CJX_Oids::CJX_Oids(CXFA_Oids* node) : CJX_Node(node) {}
 
 CJX_Oids::~CJX_Oids() = default;
-
-void CJX_Oids::use(CFXJSE_Value* pValue,
-                   bool bSetting,
-                   XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Oids::type(CFXJSE_Value* pValue,
-                    bool bSetting,
-                    XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Oids::usehref(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_oids.h b/fxjs/xfa/cjx_oids.h
index a205fa0..b7eff1f 100644
--- a/fxjs/xfa/cjx_oids.h
+++ b/fxjs/xfa/cjx_oids.h
@@ -16,10 +16,6 @@
  public:
   explicit CJX_Oids(CXFA_Oids* node);
   ~CJX_Oids() override;
-
-  JSE_PROP(type);
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_OIDS_H_
diff --git a/fxjs/xfa/cjx_operation.cpp b/fxjs/xfa/cjx_operation.cpp
index fd499e3..83678b9 100644
--- a/fxjs/xfa/cjx_operation.cpp
+++ b/fxjs/xfa/cjx_operation.cpp
@@ -11,27 +11,3 @@
 CJX_Operation::CJX_Operation(CXFA_Operation* node) : CJX_TextNode(node) {}
 
 CJX_Operation::~CJX_Operation() = default;
-
-void CJX_Operation::use(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Operation::output(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Operation::usehref(CFXJSE_Value* pValue,
-                            bool bSetting,
-                            XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Operation::input(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_operation.h b/fxjs/xfa/cjx_operation.h
index 3d16997..655f395 100644
--- a/fxjs/xfa/cjx_operation.h
+++ b/fxjs/xfa/cjx_operation.h
@@ -16,11 +16,6 @@
  public:
   explicit CJX_Operation(CXFA_Operation* node);
   ~CJX_Operation() override;
-
-  JSE_PROP(input);
-  JSE_PROP(output);
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_OPERATION_H_
diff --git a/fxjs/xfa/cjx_overflow.cpp b/fxjs/xfa/cjx_overflow.cpp
index 68d2890..041ae5b 100644
--- a/fxjs/xfa/cjx_overflow.cpp
+++ b/fxjs/xfa/cjx_overflow.cpp
@@ -11,33 +11,3 @@
 CJX_Overflow::CJX_Overflow(CXFA_Overflow* node) : CJX_Node(node) {}
 
 CJX_Overflow::~CJX_Overflow() = default;
-
-void CJX_Overflow::use(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Overflow::trailer(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Overflow::usehref(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Overflow::target(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Overflow::leader(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_overflow.h b/fxjs/xfa/cjx_overflow.h
index 5bd9b6d..1caeefb 100644
--- a/fxjs/xfa/cjx_overflow.h
+++ b/fxjs/xfa/cjx_overflow.h
@@ -16,12 +16,6 @@
  public:
   explicit CJX_Overflow(CXFA_Overflow* node);
   ~CJX_Overflow() override;
-
-  JSE_PROP(leader);
-  JSE_PROP(target);
-  JSE_PROP(trailer);
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_OVERFLOW_H_
diff --git a/fxjs/xfa/cjx_pagearea.cpp b/fxjs/xfa/cjx_pagearea.cpp
index cbc5b49..fbf3c6f 100644
--- a/fxjs/xfa/cjx_pagearea.cpp
+++ b/fxjs/xfa/cjx_pagearea.cpp
@@ -11,51 +11,3 @@
 CJX_PageArea::CJX_PageArea(CXFA_PageArea* node) : CJX_Container(node) {}
 
 CJX_PageArea::~CJX_PageArea() = default;
-
-void CJX_PageArea::use(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_PageArea::pagePosition(CFXJSE_Value* pValue,
-                                bool bSetting,
-                                XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_PageArea::oddOrEven(CFXJSE_Value* pValue,
-                             bool bSetting,
-                             XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_PageArea::relevant(CFXJSE_Value* pValue,
-                            bool bSetting,
-                            XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_PageArea::initialNumber(CFXJSE_Value* pValue,
-                                 bool bSetting,
-                                 XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_PageArea::usehref(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_PageArea::numbered(CFXJSE_Value* pValue,
-                            bool bSetting,
-                            XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_PageArea::blankOrNotBlank(CFXJSE_Value* pValue,
-                                   bool bSetting,
-                                   XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_pagearea.h b/fxjs/xfa/cjx_pagearea.h
index 8985a47..35c017c 100644
--- a/fxjs/xfa/cjx_pagearea.h
+++ b/fxjs/xfa/cjx_pagearea.h
@@ -16,15 +16,6 @@
  public:
   explicit CJX_PageArea(CXFA_PageArea* node);
   ~CJX_PageArea() override;
-
-  JSE_PROP(blankOrNotBlank);
-  JSE_PROP(initialNumber);
-  JSE_PROP(numbered);
-  JSE_PROP(oddOrEven);
-  JSE_PROP(pagePosition);
-  JSE_PROP(relevant);
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_PAGEAREA_H_
diff --git a/fxjs/xfa/cjx_pageset.cpp b/fxjs/xfa/cjx_pageset.cpp
index b8ad4b0..7a86727 100644
--- a/fxjs/xfa/cjx_pageset.cpp
+++ b/fxjs/xfa/cjx_pageset.cpp
@@ -11,27 +11,3 @@
 CJX_PageSet::CJX_PageSet(CXFA_PageSet* node) : CJX_Container(node) {}
 
 CJX_PageSet::~CJX_PageSet() = default;
-
-void CJX_PageSet::relation(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_PageSet::relevant(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_PageSet::use(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_PageSet::usehref(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_pageset.h b/fxjs/xfa/cjx_pageset.h
index adffdc0..5d2eb21 100644
--- a/fxjs/xfa/cjx_pageset.h
+++ b/fxjs/xfa/cjx_pageset.h
@@ -16,11 +16,6 @@
  public:
   explicit CJX_PageSet(CXFA_PageSet* node);
   ~CJX_PageSet() override;
-
-  JSE_PROP(relation);
-  JSE_PROP(relevant);
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_PAGESET_H_
diff --git a/fxjs/xfa/cjx_para.cpp b/fxjs/xfa/cjx_para.cpp
index 6e6369c..6970ec9 100644
--- a/fxjs/xfa/cjx_para.cpp
+++ b/fxjs/xfa/cjx_para.cpp
@@ -11,87 +11,3 @@
 CJX_Para::CJX_Para(CXFA_Para* node) : CJX_Node(node) {}
 
 CJX_Para::~CJX_Para() = default;
-
-void CJX_Para::hAlign(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::textIndent(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::use(CFXJSE_Value* pValue,
-                   bool bSetting,
-                   XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::marginRight(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::marginLeft(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::radixOffset(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::preserve(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::spaceBelow(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::vAlign(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::tabDefault(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::tabStops(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::usehref(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::lineHeight(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::spaceAbove(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_para.h b/fxjs/xfa/cjx_para.h
index 0a527d6..70604ac 100644
--- a/fxjs/xfa/cjx_para.h
+++ b/fxjs/xfa/cjx_para.h
@@ -16,21 +16,6 @@
  public:
   explicit CJX_Para(CXFA_Para* node);
   ~CJX_Para() override;
-
-  JSE_PROP(hAlign);
-  JSE_PROP(lineHeight);
-  JSE_PROP(marginLeft);
-  JSE_PROP(marginRight);
-  JSE_PROP(preserve);
-  JSE_PROP(radixOffset);
-  JSE_PROP(spaceAbove);
-  JSE_PROP(spaceBelow);
-  JSE_PROP(tabDefault);
-  JSE_PROP(tabStops);
-  JSE_PROP(textIndent);
-  JSE_PROP(use);
-  JSE_PROP(usehref);
-  JSE_PROP(vAlign);
 };
 
 #endif  // FXJS_XFA_CJX_PARA_H_
diff --git a/fxjs/xfa/cjx_password.cpp b/fxjs/xfa/cjx_password.cpp
index cd57789..e9b5ec5 100644
--- a/fxjs/xfa/cjx_password.cpp
+++ b/fxjs/xfa/cjx_password.cpp
@@ -11,15 +11,3 @@
 CJX_Password::CJX_Password(CXFA_Password* node) : CJX_TextNode(node) {}
 
 CJX_Password::~CJX_Password() = default;
-
-void CJX_Password::use(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Password::usehref(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_password.h b/fxjs/xfa/cjx_password.h
index 1cec53c..9af175f 100644
--- a/fxjs/xfa/cjx_password.h
+++ b/fxjs/xfa/cjx_password.h
@@ -16,9 +16,6 @@
  public:
   explicit CJX_Password(CXFA_Password* node);
   ~CJX_Password() override;
-
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_PASSWORD_H_
diff --git a/xfa/fxfa/parser/xfa_basic_data_element_script.cpp b/xfa/fxfa/parser/xfa_basic_data_element_script.cpp
index 10b2e83..c0bfc41 100644
--- a/xfa/fxfa/parser/xfa_basic_data_element_script.cpp
+++ b/xfa/fxfa/parser/xfa_basic_data_element_script.cpp
@@ -854,17 +854,17 @@
     /* map */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Map::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xb0e5485d,
           "bind",
-          &CJX_Map::bind,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Bind,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Map::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xbe52dfbf,
@@ -874,7 +874,7 @@
           XFA_ScriptType::Basic)},
     {ATTR(0xcd7f7b54,
           "from",
-          &CJX_Map::from,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::From,
           XFA_ScriptType::Basic)},
     {ATTR(0xf6b47749,
@@ -886,22 +886,22 @@
     /* mdp */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Mdp::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x8e29d794,
           "signatureType",
-          &CJX_Mdp::signatureType,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::SignatureType,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Mdp::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xe11a2cbc,
           "permissions",
-          &CJX_Mdp::permissions,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Permissions,
           XFA_ScriptType::Basic)},
 
@@ -945,12 +945,12 @@
     /* oid */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Oid::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Oid::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -1137,32 +1137,32 @@
     /* margin */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Margin::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xcfea02e,
           "leftInset",
-          &CJX_Margin::leftInset,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::LeftInset,
           XFA_ScriptType::Basic)},
     {ATTR(0x1356caf8,
           "bottomInset",
-          &CJX_Margin::bottomInset,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::BottomInset,
           XFA_ScriptType::Basic)},
     {ATTR(0x25764436,
           "topInset",
-          &CJX_Margin::topInset,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::TopInset,
           XFA_ScriptType::Basic)},
     {ATTR(0x8a692521,
           "rightInset",
-          &CJX_Margin::rightInset,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::RightInset,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Margin::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -1306,72 +1306,72 @@
     /* para */
     {ATTR(0x2282c73,
           "hAlign",
-          &CJX_Para::hAlign,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::HAlign,
           XFA_ScriptType::Basic)},
     {ATTR(0x8d4f1c7,
           "textIndent",
-          &CJX_Para::textIndent,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::TextIndent,
           XFA_ScriptType::Basic)},
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Para::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x2a82d99c,
           "marginRight",
-          &CJX_Para::marginRight,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::MarginRight,
           XFA_ScriptType::Basic)},
     {ATTR(0x534729c9,
           "marginLeft",
-          &CJX_Para::marginLeft,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::MarginLeft,
           XFA_ScriptType::Basic)},
     {ATTR(0x5739d1ff,
           "radixOffset",
-          &CJX_Para::radixOffset,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::RadixOffset,
           XFA_ScriptType::Basic)},
     {ATTR(0x577682ac,
           "preserve",
-          &CJX_Para::preserve,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Preserve,
           XFA_ScriptType::Basic)},
     {ATTR(0x731e0665,
           "spaceBelow",
-          &CJX_Para::spaceBelow,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::SpaceBelow,
           XFA_ScriptType::Basic)},
     {ATTR(0x7a7cc341,
           "vAlign",
-          &CJX_Para::vAlign,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::VAlign,
           XFA_ScriptType::Basic)},
     {ATTR(0x836d4d7c,
           "tabDefault",
-          &CJX_Para::tabDefault,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::TabDefault,
           XFA_ScriptType::Basic)},
     {ATTR(0x8fa01790,
           "tabStops",
-          &CJX_Para::tabStops,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::TabStops,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Para::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xd4b01921,
           "lineHeight",
-          &CJX_Para::lineHeight,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::LineHeight,
           XFA_ScriptType::Basic)},
     {ATTR(0xe18b5659,
           "spaceAbove",
-          &CJX_Para::spaceAbove,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::SpaceAbove,
           XFA_ScriptType::Basic)},
 
@@ -1667,22 +1667,22 @@
     /* operation */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Operation::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x60d4c8b1,
           "output",
-          &CJX_Operation::output,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Output,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Operation::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xd6a39990,
           "input",
-          &CJX_Operation::input,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Input,
           XFA_ScriptType::Basic)},
 
@@ -1698,17 +1698,17 @@
     /* issuers */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Issuers::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x2f16a382,
           "type",
-          &CJX_Issuers::type,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Type,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Issuers::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -1850,7 +1850,7 @@
           XFA_ScriptType::Basic)},
     {ATTR(0x21aed,
           "id",
-          &CJX_Area::id,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Id,
           XFA_ScriptType::Basic)},
     {ATTR(0x31b19c1,
@@ -3483,12 +3483,12 @@
     /* message */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Message::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Message::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xbe52dfbf,
@@ -3845,22 +3845,22 @@
     /* pageSet */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_PageSet::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x8c99377e,
           "relation",
-          &CJX_PageSet::relation,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Relation,
           XFA_ScriptType::Basic)},
     {ATTR(0x8e1c2921,
           "relevant",
-          &CJX_PageSet::relevant,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Relevant,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_PageSet::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -4246,17 +4246,17 @@
     /* numericEdit */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_NumericEdit::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_NumericEdit::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xe6f99487,
           "hScrollPolicy",
-          &CJX_NumericEdit::hScrollPolicy,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::HScrollPolicy,
           XFA_ScriptType::Basic)},
 
@@ -4287,42 +4287,42 @@
     /* pageArea */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_PageArea::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x14a32d52,
           "pagePosition",
-          &CJX_PageArea::pagePosition,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::PagePosition,
           XFA_ScriptType::Basic)},
     {ATTR(0x8340ea66,
           "oddOrEven",
-          &CJX_PageArea::oddOrEven,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::OddOrEven,
           XFA_ScriptType::Basic)},
     {ATTR(0x8e1c2921,
           "relevant",
-          &CJX_PageArea::relevant,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Relevant,
           XFA_ScriptType::Basic)},
     {ATTR(0xa85e74f3,
           "initialNumber",
-          &CJX_PageArea::initialNumber,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::InitialNumber,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_PageArea::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xbe9ba472,
           "numbered",
-          &CJX_PageArea::numbered,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Numbered,
           XFA_ScriptType::Basic)},
     {ATTR(0xd70798c2,
           "blankOrNotBlank",
-          &CJX_PageArea::blankOrNotBlank,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::BlankOrNotBlank,
           XFA_ScriptType::Basic)},
 
@@ -4346,17 +4346,17 @@
     /* oids */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Oids::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x2f16a382,
           "type",
-          &CJX_Oids::type,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Type,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Oids::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -4526,12 +4526,12 @@
     /* manifest */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Manifest::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x1b8dce3e,
           "action",
-          &CJX_Manifest::action,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Action,
           XFA_ScriptType::Basic)},
     {ATTR(0xa52682bd,
@@ -4541,34 +4541,34 @@
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Manifest::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
     /* overflow */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Overflow::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x9dcc3ab3,
           "trailer",
-          &CJX_Overflow::trailer,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Trailer,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Overflow::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xc8da4da7,
           "target",
-          &CJX_Overflow::target,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Target,
           XFA_ScriptType::Basic)},
     {ATTR(0xcbcaf66d,
           "leader",
-          &CJX_Overflow::leader,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Leader,
           XFA_ScriptType::Basic)},
 
@@ -4669,37 +4669,37 @@
     /* medium */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Medium::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x4ef3d02c,
           "orientation",
-          &CJX_Medium::orientation,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Orientation,
           XFA_ScriptType::Basic)},
     {ATTR(0x65e30c67,
           "imagingBBox",
-          &CJX_Medium::imagingBBox,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::ImagingBBox,
           XFA_ScriptType::Basic)},
     {ATTR(0x9041d4b0,
           "short",
-          &CJX_Medium::shortValue,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Short,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Medium::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xe349d044,
           "stock",
-          &CJX_Medium::stock,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Stock,
           XFA_ScriptType::Basic)},
     {ATTR(0xf6b4afb0,
           "long",
-          &CJX_Medium::longValue,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Long,
           XFA_ScriptType::Basic)},
 
@@ -5518,12 +5518,12 @@
     /* password */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Password::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Password::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -6242,17 +6242,17 @@
           XFA_ScriptType::Basic)},
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Occur::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x7d0b5fca,
           "initial",
-          &CJX_Occur::initial,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Initial,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Occur::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -6428,7 +6428,7 @@
     /* node */
     {ATTR(0x21aed,
           "id",
-          &CJX_Node::id,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Id,
           XFA_ScriptType::Basic)},
     {ATTR(0x234a1,
