newaxis.setAxisId(findUniqueIdName(AxisObj,newaxis.getAxisId()));
newaxis.setAxisId(findUniqueIdName(AxisObj,newaxis.getAxisId(), AxisAliasId));
       public Object action (SaxDocumentHandler handler, Attributes attrs) {           // create new object appropriately           Axis newaxis = new Axis();          newaxis.setXMLAttributes(attrs); // set XML attributes from passed list           // Every axis must have *either* axisId *or* an axisIdRef           // else, its illegal!          String axisId = null;          String axisIdRef = null;          if ( (axisId = newaxis.getAxisId()) != null                 || (axisIdRef = newaxis.getAxisIdRef()) != null              )           {              // add this object to the lookup table, if it has an ID             if (axisId != null) {                 // a warning check, just in case                  if (AxisObj.containsKey(axisId))                     Log.warnln("More than one axis node with axisId=\""+axisId+"\", using latest node." );                  // add this into the list of axis objects                 AxisObj.put(axisId, newaxis);             }             //  If there is a reference object, clone it to get             //  the new axis             if (axisIdRef != null) {                 if (AxisObj.containsKey(axisIdRef)) {                    BaseObject refAxisObj = (BaseObject) AxisObj.get(axisIdRef);                    try {                       newaxis = (Axis) refAxisObj.clone();                    } catch (java.lang.CloneNotSupportedException e) {                       Log.errorln("Weird error, cannot clone axis object. Aborting read.");                       System.exit(-1);                    }                    // override attrs with those in passed list                    newaxis.setXMLAttributes(attrs);                    // give the clone a unique Id and remove IdRef                     newaxis.setAxisId(findUniqueIdName(AxisObj,newaxis.getAxisId()));                     newaxis.setAxisIdRef(null);                    // add this into the list of axis objects                    AxisObj.put(newaxis.getAxisId(), newaxis);                            } else {                    Log.warnln("Error: Reader got an axis with AxisIdRef=\""+axisIdRef+"\" but no previous axis has that id! Ignoring add axis request.");                    return (Object) null;                 }             }             // add this axis to the current array object             CurrentArray.addAxis(newaxis);             // I dont believe this is actually used             // CurrentDatatypeObject = newaxis;          } else {             Log.errorln("Axis object:"+newaxis+" lacks either axisId or axisIdRef, ignoring!");          }          return newaxis;       }