=== modified file 'src/com/goldencode/p2j/persist/DynamicTablesHelper.java'
--- src/com/goldencode/p2j/persist/DynamicTablesHelper.java	2022-10-14 12:38:17 +0000
+++ src/com/goldencode/p2j/persist/DynamicTablesHelper.java	2022-10-18 07:43:22 +0000
@@ -832,9 +832,9 @@
             tableField.putAnnotation("col_lab", field.getColumnLabel());
          }
          
-         if (field.getCodePage() != null)
+         if (!org.apache.commons.lang3.StringUtils.isEmpty(field.getCodePage()))
          {
-            tableField.putAnnotation("codePage", field.getCodePage());
+            tableField.putAnnotation("column-codepage", field.getCodePage());
          }
 
          if (field.isSerializeHidden())

=== modified file 'src/com/goldencode/p2j/persist/PropertyDefinition.java'
--- src/com/goldencode/p2j/persist/PropertyDefinition.java	2022-09-09 15:48:28 +0000
+++ src/com/goldencode/p2j/persist/PropertyDefinition.java	2022-10-29 16:20:33 +0000
@@ -17,6 +17,7 @@
 **     SVL 20201030 Added format, label and columnLabel fields.
 **     OM  20201120 Added SCHEMA-MARSHAL implementation.
 **     CA  20220909 Always marshal the schema, otherwise the remote side will not be able to rebuild the table.
+**     IAS 20221029 Added support for missed properties.
 */
 
 /*
@@ -76,6 +77,10 @@
 
 import java.io.*;
 import java.util.*;
+
+import com.goldencode.p2j.persist.orm.*;
+import com.goldencode.p2j.util.*;
+
 import static com.goldencode.p2j.persist.AbstractTempTable.*;
 import static com.goldencode.util.NativeTypeSerializer.*; 
 
@@ -117,7 +122,25 @@
    
    /** The column label of this property. */
    private String columnLabel;
-   
+
+   /** HELP attribute of this field. */
+   private String help;
+   
+   /** INITIAL attribute of this field. */
+   private String initial;
+
+   /** Flag indicating the field should not be included in serialized output. */
+   private boolean serializeHidden;
+   
+   /** Flag indicating the field is case-sensitive. */
+   private boolean caseSensitive;
+
+   /** Node type of field in XML output. */
+   private String xmlNodeType;
+   
+   /** Code page of the CLOB field. */
+   private String codePage;
+
    /**
     * The SCHEMA-MARSHAL level for the parent  temp-table. It is never {@code SM_DEFAULT} when object is to
     * be serialized. Always {@code SM_DEFAULT} for a read object.
@@ -303,7 +326,31 @@
       this.label = label;
       this.columnLabel = columnLabel;
    }
-   
+
+   /**
+    * Create a new property definition.
+    *
+    * @param    prop
+    *           The ORM field <code>Property</code>.
+    */           
+   public PropertyDefinition(Property prop)
+   {
+      this.name = prop.name;
+      verifyType(prop._fwdType);
+      this.type = prop._fwdType;
+      int extent = prop.index > 0 ? 0 : prop.extent;
+      this.extent = extent == 0 ? NO_EXTENT : extent;
+      this.legacyName = prop.legacy;
+      this.format = prop.format;
+      this.label = prop.label;
+      this.columnLabel = prop.columnLabel;
+      this.help = prop.help;
+      this.initial = prop.initial;
+      this.serializeHidden = prop.serializeHidden;
+      this.caseSensitive = prop.caseSensitive;
+      this.xmlNodeType = prop.xmlNodeType;
+      this.codePage = prop.codePage;
+   }
    /**
     * Get the type of this property.
     * 
@@ -385,6 +432,67 @@
    }
 
    /**
+    * Get help text of this property.
+    *
+    * @return help text of this property.
+    */
+   public String getHelp()
+   {
+      return help;
+   }
+
+   /**
+    * Get initial value of this property.
+    *
+    * @return initial value of this property.
+    */
+   public String getInitial()
+   {
+      return initial;
+   }
+
+   /**
+    * Get 'serialize hidden' flag of this property.
+    *
+    * @return 'serialize hidden' flag of this property.
+    */
+   public boolean isSerializeHidden()
+   {
+      return serializeHidden;
+   }
+
+   /**
+    * Get 'case-sensitive' flag of this property.
+    *
+    * @return 'case-sensitive' flag of this property.
+    */
+   public boolean isCaseSensitive()
+   {
+      return caseSensitive;
+   }
+
+   
+   /**
+    * Get XML node type of this property.
+    *
+    * @return XML node type of this property.
+    */
+   public String getXmlNodeType()
+   {
+      return xmlNodeType;
+   }
+
+   /**
+    * Get code page of this property.
+    *
+    * @return code page of this property.
+    */
+   public String getCodePage()
+   {
+      return codePage;
+   }
+
+   /**
     * Send the property definition to the specified output destination.
     * 
     * @param    out
@@ -401,13 +509,24 @@
       // recreate the temp-table.
       boolean none = false; // schemaMarshalLevel == SM_NONE;
       
-      writeString(out, none ? null : name);
-      writeString(out, (type == null || none) ? null : type.getName());
-      out.writeInt(none ? 0 : extent);
-      writeString(out, none ? null : legacyName);
-      writeString(out, full ? format : null);
-      writeString(out, full ? label : null);
-      writeString(out, full ? columnLabel : null);
+      writeString(out, name);
+      writeString(out, legacyName);
+      writeString(out, type == null ? null : type.getName());
+      out.writeInt(extent);
+      writeString(out, initial);
+      out.writeByte(serializeHidden ? 1 : 0);
+      out.writeByte(caseSensitive ? 1 : 0);
+      writeString(out, xmlNodeType);
+      writeString(out, codePage);
+      out.writeByte(full ? 1 : 0);
+      if (!full )
+      {
+         return;
+      }
+      writeString(out, format);
+      writeString(out, label);
+      writeString(out, columnLabel);
+      writeString(out, help);
    }
    
    /**
@@ -427,13 +546,24 @@
           ClassNotFoundException
    {
       name = readString(in);
+      legacyName = readString(in);
       String tn = readString(in);
       type = (tn == null) ? null : Class.forName(tn);
       extent = in.readInt();
-      legacyName = readString(in);
+      initial = readString(in);
+      serializeHidden = in.readByte() == 1;
+      caseSensitive = in.readByte() == 1;
+      xmlNodeType = readString(in);
+      codePage = readString(in);
+      boolean full = in.readByte() == 1;
+      if (!full)
+      {
+         return;
+      }
       format = readString(in);
       label = readString(in);
       columnLabel = readString(in);
+      help = readString(in);
    }
    
    /**

=== modified file 'src/com/goldencode/p2j/persist/TableMapper.java'
--- src/com/goldencode/p2j/persist/TableMapper.java	2022-10-07 09:02:39 +0000
+++ src/com/goldencode/p2j/persist/TableMapper.java	2022-10-18 08:44:34 +0000
@@ -102,6 +102,7 @@
 **     CA  20220601 getIndexFieldNames must return lowercased legacy names.
 **     OM  20220914 Added MAX-WIDTH support for CHARACTER fields.
 **     IAS 20221006 Added 'definedFormat' and 'definedLabel'.
+**     IAS 20221018 Fixed processing of 'now' and 'today' INITIAL attribute value.
 */
 
 /*
@@ -2874,7 +2875,7 @@
                   {
                      if ("today".equalsIgnoreCase(text))
                      {
-                        initialValue = date.today();
+                        initialValue = new character(text);
                      }
                      else
                      {
@@ -2885,7 +2886,7 @@
                   {
                      if ("now".equalsIgnoreCase(text))
                      {
-                        initialValue = datetime.now();
+                        initialValue = new character(text);
                      }
                      else if (text.toUpperCase().indexOf('T') > 0)
                      {
@@ -2902,7 +2903,7 @@
                   {
                      if ("now".equalsIgnoreCase(text))
                      {
-                        initialValue = datetimetz.now();
+                        initialValue = new character(text);
                      }
                      else if (text.toUpperCase().indexOf('T') > 0)
                      {

=== modified file 'src/com/goldencode/p2j/persist/TableWrapper.java'
--- src/com/goldencode/p2j/persist/TableWrapper.java	2022-06-02 12:57:09 +0000
+++ src/com/goldencode/p2j/persist/TableWrapper.java	2022-10-29 16:21:58 +0000
@@ -28,6 +28,7 @@
 **                  (so that relations, schema, etc is done on the server-side).
 **     CA  20220428 Allow null peerDef at setPeerDef.
 **     CA  20220602 Added basic support for transport of object instances over appserver call.
+**     IAS 20221029 Added support for the SCHEMA-MARSHAL attribute.
 */
 
 /*
@@ -123,6 +124,9 @@
    /** Table name. */
    private String tableName;
 
+   /** Table SCHEMA-MARSHAL attribute value encodes as int */ 
+   private int schemaMarshalLevel;
+
    /**
     * Determines if this wrapper wraps data from a TABLE-HANDLE parameter. Necessary because of
     * quirks in error handling: calling side needs to know if it is a TABLE-HANDLE parameter (not
@@ -698,6 +702,7 @@
          while (resultSet.hasMoreProperties())
          {
             PropertyDefinition property = resultSet.nextProperty();
+            property.setMarshalLevel(schemaMarshalLevel);
             out.writeByte(1);
             property.writeExternal(out);
 
@@ -921,6 +926,25 @@
       this.tableHandle = tableHandle;
    }
 
+   /** Get encoded table SCHEMA-MARSHAL attribute value.
+    * 
+    * @return encoded table SCHEMA-MARSHAL attribute value.
+    */
+   public int getSchemaMarshalLevel()
+   {
+      return schemaMarshalLevel;
+   }
+
+   /** Set encoded table SCHEMA-MARSHAL attribute value.
+    * 
+    * @param schemaMarshalLevel 
+    *        encoded table SCHEMA-MARSHAL attribute value.
+    */
+   public void setSchemaMarshalLevel(int schemaMarshalLevel)
+   {
+      this.schemaMarshalLevel = schemaMarshalLevel;
+   }
+
    /**
     * Initialize this wrapper with the info from the given temp-table.
     * 

=== modified file 'src/com/goldencode/p2j/persist/TempTableBuilder.java'
--- src/com/goldencode/p2j/persist/TempTableBuilder.java	2022-10-14 12:38:17 +0000
+++ src/com/goldencode/p2j/persist/TempTableBuilder.java	2022-10-29 16:22:57 +0000
@@ -122,6 +122,7 @@
 **     OM  20220914 Added MAX-WIDTH support for CHARACTER fields.
 **     IAS 20221003 Fixed default value of the PRIMARY attribute
 **     IAS 20221014 Added COMHANDLE to the 'datatypesMatchLen' map
+**     IAS 20221029 Added support for missed properties.
 */
 
 /*
@@ -1340,6 +1341,55 @@
                               character    label,
                               character    columnLabel)
    {
+      return addNewField(name, type, extent, format, initial, label, columnLabel,
+               null, null, null, false, false);
+   }
+   /**
+    * Adds a field with the specified properties to the temp-table.
+    * This method is the P2J equivalent of <code>ADD-NEW-FIELD</code> method
+    * of Progress 4GL.
+    * <p>
+    * When a parameter is set to null, it means it was not specified by the business logic.
+    *
+    * @param   name
+    *          The name of the field to be created in the temp-table.
+    * @param   type
+    *          The data type of the specified field.
+    * @param   extent
+    *          An integer expression specifying the extent of an array.
+    * @param   format
+    *          The data format for the defined data type. If empty or unknown, format is
+    *          replaced with default format. Null value means that format is not used in
+    *          ADD-NEW-FIELD.
+    * @param   initial
+    *          An expression that evaluates to the initial value of the defined field.
+    *          TODO: this method will probably be overloaded because of this.
+    * @param   label
+    *          The label of the defined field. If <code>null</code> or unknown the name
+    *          parameter will be used.
+    * @param   columnLabel
+    *          The label of the column associated with the defined field
+    * @param   help 
+    * @param   xmlNodeType 
+    * @param   codePage 
+    * @param   serializeHidden 
+    * @param   caseSensitive 
+    *
+    * @return  <code>true</code> on success.
+    */
+   public logical addNewField(character    name,
+                              character    type,
+                              integer      extent,
+                              character    format,
+                              BaseDataType initial,
+                              character    label,
+                              character    columnLabel,
+                              character    help,
+                              character    xmlNodeType,
+                              character    codePage,
+                              boolean      serializeHidden,
+                              boolean      caseSensitive)
+   {
       addFunctionCalled = true;
       
       if (_prepared())
@@ -1397,12 +1447,16 @@
       
       String labelStr = label != null ? label.getValue() : null;
       String columnLabelStr = columnLabel != null ? columnLabel.getValue() : null;
+      String helpStr = help != null ? help.getValue() : null;
+      String codePageStr = codePage != null ? codePage.getValue() : null;
+      String xmlNodeTypeStr = xmlNodeType != null ? xmlNodeType.getValue() : null;
       
       // Note: case-sensitivity and CLOB code page cannot be specified using P4GL ADD-NEW-FIELD method
       long ext = extent == null || extent.getValue() == 1 ? 0 : extent.getValue();
       P2JField field = new P2JField(fieldName, parmType, ext, formatStr,
-                                    initial, labelStr, columnLabelStr, false, null, null, false, null, null,
-                                    null, null, false, 0, 0);
+                                    initial, labelStr, columnLabelStr, caseSensitive, 
+                                    codePageStr, helpStr, serializeHidden, null, null,
+                                    null, xmlNodeTypeStr, false, 0, 0);
       addField(field);
       return new logical(true);
    }
@@ -2749,6 +2803,8 @@
          PropertyDefinition propertyDefinition = iter.next();
          addNewField(propertyDefinition);
       }
+      this.namespaceURI(tableWrapper.getXmlns());
+      this.namespacePrefix(tableWrapper.getXmlPrefix());
       tempTablePrepare(tableWrapper.getTableName());
       TemporaryBuffer.insertAllRows(tableWrapper,
                                     (Temporary) defaultBufferHandle().getResource(),
@@ -3114,9 +3170,14 @@
                   new character(dataType),
                   extent,
                   new character(propertyDefinition.getFormat()),
-                  null,
+                  new character(propertyDefinition.getInitial()),
                   new character(propertyDefinition.getLabel()),
-                  new character(propertyDefinition.getColumnLabel()));
+                  new character(propertyDefinition.getColumnLabel()),
+                  new character(propertyDefinition.getHelp()),
+                  new character(propertyDefinition.getXmlNodeType()),
+                  new character(propertyDefinition.getCodePage()),
+                  propertyDefinition.isSerializeHidden(),
+                  propertyDefinition.isCaseSensitive());
    }
    
    /**

=== modified file 'src/com/goldencode/p2j/persist/TempTableResultSet.java'
--- src/com/goldencode/p2j/persist/TempTableResultSet.java	2022-10-06 08:18:44 +0000
+++ src/com/goldencode/p2j/persist/TempTableResultSet.java	2022-10-29 16:24:55 +0000
@@ -31,6 +31,7 @@
 **     SVL 20210701 Added clearRows.
 **     CA  20221006 Do not access tableHandle() in the FWD runtime, get the TempTable instance directly.  
 **                  Refs #6826
+**     IAS 20221029 Re-worked 'init' method.
 */
 
 /*
@@ -189,11 +190,8 @@
     * @param    append
     *           Flag indicating this table is sent in APPEND mode.
     *           
-    * @throws   ClassNotFoundException
-    *           If the type of a property can not be resolved to a class.
     */
    public TempTableResultSet(Temporary dmo, boolean input, boolean output, boolean append)
-//   throws ClassNotFoundException
    {
       this(dmo, input, output, append, true);
    }
@@ -358,11 +356,8 @@
     * TODO: improve this (i.e. use an open cursor or some other alternative to not read the data
     *       in memory)
     * 
-    * @throws   ClassNotFoundException
-    *           If the type of a property can not be resolved to a class.
     */
    private void init(boolean copyRows)
-//   throws ClassNotFoundException
    {
       TemporaryBuffer buffer = (TemporaryBuffer) ((BufferReference) dmo).buffer();
       
@@ -387,45 +382,14 @@
       {
          dmoPropIndex.put(dmoProps[i], i);
       }
-      PropertyDefinition[] props = new PropertyDefinition[dmoProps.length];
-      
-      Iterator<Property> iter = dmoInfo.getFields(false); // skip properties that are not accessible via the DMO's API.
-      while (iter.hasNext())
-      {
-         Property prop = iter.next();
-         // the Properties whose extent fields were denormalized are treated as simple ones 
-         int extent = prop.index > 0 ? 0 : prop.extent;
-         if (extent == 0)
-         {
-            props[dmoPropIndex.get(prop.name)] = 
-               new PropertyDefinition(prop.name,
-                                      prop._fwdType,
-                                      prop.legacy,
-                                      prop.format,
-                                      prop.label,
-                                      prop.columnLabel);
-         }
-         else
-         {
-            props[dmoPropIndex.get(prop.name)] = 
-               new PropertyDefinition(prop.name,
-                                      prop._fwdType,
-                                      extent,
-                                      prop.legacy,
-                                      prop.format,
-                                      prop.label,
-                                      prop.columnLabel);
-         }
-      }
-      
-      java.util.List<PropertyDefinition> lprops = new ArrayList<>();
-      for (int i = 0; i < props.length; i++)
-      {
-         if (props[i] != null)
-         {
-            lprops.add(props[i]);
-         }
-      }
+      
+      Iterable<Property> iter = () -> dmoInfo.getFields(false); // skip properties that are not accessible via the DMO's API.
+      Map<Integer, PropertyDefinition> mprops = new TreeMap<>();
+      for (Property prop: iter)
+      {
+         mprops.put(dmoPropIndex.get(prop.name), new PropertyDefinition(prop));
+      }
+      List<PropertyDefinition> lprops = new ArrayList<>(mprops.values());
 
       if (copyRows)
       {

=== modified file 'src/com/goldencode/p2j/persist/orm/DmoMeta.java'
--- src/com/goldencode/p2j/persist/orm/DmoMeta.java	2022-09-17 01:08:47 +0000
+++ src/com/goldencode/p2j/persist/orm/DmoMeta.java	2022-10-18 08:44:59 +0000
@@ -39,6 +39,7 @@
 **                  to a better suited name.
 **     OM  20220706 The objects returned by getDatabaseIndexes() carry the legacy names, too.
 **     OM  20220914 Use MAX-WIDTH to generate custom sized varchar columns.
+**     IAS 20221018 Fixed processing of 'now' and 'today' INITIAL attribute value.
 */
 
 /*
@@ -1591,13 +1592,13 @@
                      {
                         if (bdtType == date.class)
                         {
-                           init = "today".equalsIgnoreCase(p.initial) ? date.today() : new date(p.initial);
+                           init = "today".equalsIgnoreCase(p.initial) ? new character(p.initial) : new date(p.initial);
                         }
                         else if (bdtType == datetime.class)
                         {
                            if ("now".equalsIgnoreCase(p.initial))
                            {
-                              init = datetime.now();
+                              init =  new character(p.initial);
                            }
                            else if (p.initial.toUpperCase().indexOf('T') > 0)
                            {
@@ -1614,7 +1615,7 @@
                         {
                            if ("now".equalsIgnoreCase(p.initial))
                            {
-                              init = datetimetz.now();
+                              init = new character(p.initial);
                            }
                            else if (p.initial.toUpperCase().indexOf('T') > 0)
                            {

=== modified file 'src/com/goldencode/p2j/persist/serial/XmlImport.java'
--- src/com/goldencode/p2j/persist/serial/XmlImport.java	2022-10-14 12:38:17 +0000
+++ src/com/goldencode/p2j/persist/serial/XmlImport.java	2022-10-18 08:45:19 +0000
@@ -42,6 +42,7 @@
 **     OM  20220914 Use MAX-WIDTH to generate custom sized varchar columns.
 **     IAS 20220926 Fixed READ-XMLSCHEMA support.
 **     IAS 20221014 More fixes to READ-XMLSCHEMA support.
+**     IAS 20221018 Fixed processing of 'now' and 'today' INITIAL attribute value.
 */
 
 /*
@@ -1866,19 +1867,30 @@
                               // Unable to set initial value '<value>' from XML Schema for field '<field>'.
                               return false;
                            }
-                           
-                           try
-                           {
-                              Constructor<? extends BaseDataType> ctor = 
-                                 (Constructor<? extends BaseDataType>) fwdType.getConstructor(String.class);
-                              defVal = ctor.newInstance(defaultStrVal);
-                           }
-                           catch (NoSuchMethodException | IllegalAccessException | 
-                                  InstantiationException | InvocationTargetException e)
-                           {
-                              ErrorManager.recordOrShowError(13143, defaultStrVal, fieldName);
-                              // Unable to set initial value '<value>' from XML Schema for field '<field>'.
-                              return false;
+                           if (fwdType == date.class && "today".equalsIgnoreCase(defaultStrVal))
+                           {
+                                defVal = new character("today"); 
+                           }
+                           else if ((fwdType == datetime.class || fwdType == datetimetz.class) &&
+                                     "now".equalsIgnoreCase(defaultStrVal))
+                           {
+                              defVal = new character("now"); 
+                           }
+                           else
+                           {
+                              try
+                              {
+                                 Constructor<? extends BaseDataType> ctor = 
+                                    (Constructor<? extends BaseDataType>) fwdType.getConstructor(String.class);
+                                 defVal = ctor.newInstance(defaultStrVal);
+                              }
+                              catch (NoSuchMethodException | IllegalAccessException | 
+                                     InstantiationException | InvocationTargetException e)
+                              {
+                                 ErrorManager.recordOrShowError(13143, defaultStrVal, fieldName);
+                                 // Unable to set initial value '<value>' from XML Schema for field '<field>'.
+                                 return false;
+                              }
                            }
                         }
                         

=== modified file 'src/com/goldencode/p2j/util/AppServerHelper.java'
--- src/com/goldencode/p2j/util/AppServerHelper.java	2022-09-12 07:16:17 +0000
+++ src/com/goldencode/p2j/util/AppServerHelper.java	2022-10-29 16:26:53 +0000
@@ -77,6 +77,7 @@
 **     CA  20220428 Fixed memptr, extent, table arguments when the request is remote.
 **     CA  20220602 Added basic support for transport of object instances over appserver call.
 **     CA  20220912 If a dataset from the call has no buffers added to it, set it to unknown.
+**     IAS 20221029 Fixed TableParameter processing.
 */
 
 /*
@@ -2660,12 +2661,19 @@
 
                   boolean input = (mode == 'I' || mode == 'U');
                   boolean output = (mode == 'O' || mode == 'U');
+                  
+                  int schemaMarshalLevel = tableParam.getSchemaMarshalLevel();
 
 //               try
 //               {
                   arg = new TableWrapper(new TempTableResultSet(tempDMO, input, output, append, input));
                   String tableName = ((BufferImpl) tempDMO).buffer().getDmoInfo().legacyTable;
                   ((TableWrapper) arg).setTableName(tableName);
+                  ((TableWrapper) arg).setSchemaMarshalLevel(schemaMarshalLevel);
+                  if (tempDMO != null && ((Buffer) tempDMO).tableHandle()._isValid())
+                  {
+                     ((TableWrapper) arg).init((TempTable) ((Buffer) tempDMO).tableHandle().getResource());
+                  }
 //               }
 //               catch (ClassNotFoundException e)
 //               {

=== modified file 'src/com/goldencode/p2j/util/TableParameter.java'
--- src/com/goldencode/p2j/util/TableParameter.java	2022-10-06 11:27:04 +0000
+++ src/com/goldencode/p2j/util/TableParameter.java	2022-10-29 16:28:13 +0000
@@ -38,6 +38,7 @@
 **                  INPUT-OUTPUT mode, and the DATASET-HANDLE, DATASET, TABLE-HANDLE or TABLE versions.
 **     CA  20220727 Fixed OO dataset/table parameters (at the method definition and method call) when there is
 **                  an APPEND option.
+**     IAS 20221029 Added SCHEMA-MARSHAL attribute support.
 */
 
 /*
@@ -134,6 +135,9 @@
    /** {@code true} if the parameter mode is OUTPUT or INPUT-OUTPUT. */
    private boolean output = false;
    
+   /** Table SCHEMA-MARSHAL attribute value encodes as int */ 
+   private int schemaMarshalLevel;
+   
    /** Flag indicating this is a TABLE-HANDLE argument. */
    private boolean isTableHandle = false;
    
@@ -218,6 +222,8 @@
       this.options     = options;
       this.input       = input;
       this.output      = output;
+      this.schemaMarshalLevel = ((AbstractTempTable)this.tableHandle.unwrapTempTable()).
+                                       getSchemaMarshalLevel();
    }
    
    /**
@@ -596,6 +602,15 @@
       return parameterIndex;
    }
    
+   /** Get encoded table SCHEMA-MARSHAL attribute value.
+    * 
+    * @return encoded table SCHEMA-MARSHAL attribute value.
+    */
+   public int getSchemaMarshalLevel()
+   {
+      return schemaMarshalLevel;
+   }
+
    /**
     * Set 1-based index of the table parameter (in declaration of the function).
     *

