Subjects
Home
VOTE Move XML Commons to Xerces
Commented: (XERCESJ 589) Bug with pattern restriction on long strings
: Xerces J 2 8 1 Release on Wednesday, September 13th
: Xerces J 2 9 0 Release on Wednesday, November 22nd
Commented: (XERCESJ 1066) Restriction+choice+substitutionGroup error
Commented: (XERCESJ 1178) Error getting prefix for an attribute with no n
Updated: (XERCESJ 1244) XMLSchemaValidator does not contribute element 's
Some consideration about the xerces DOM implementation
Updated: (XERCESJ 1066) Restriction+choice+substitutionGroup error
Commented: (XERCESJ 1227) Poor performance / OutOfMemoryError for sequenc
retain exception stack traces
Updated: (XERCESJ 1193) NPE or hang when parsing using the "continue afte
Future of NekoHTML
Commented: (XERCESJ 1203) NPE in XMLDTDProcessor
DOM Level 3 APIs for Xalan J and a new Xalan release (2 7 1)
: xml commons external 1 3 04 Release on Wednesday, November 22nd
Commented: (XERCESJ 1247) Incorrect location information on SAX when usin
XInclude exceptions how to mirror Xerces J functionality into Xerces C++?
First proposal on SoC project "Add support for the StAX (JSR 173) cursor API
: xml commons resolver 1 2 Release on Wednesday, November 22nd
Typo in RangeToken java Please check
Validator features
java lang ClassCastException when adopting Node
using the org apache xerces impl xs identity package
Updated: (XERCESJ 1257) buffer overflow in UTF8Reader for characters out
Problem with ref attributes and schema validation
Updated: (XERCESJ 122) XMLSchemaValidator does not contribute element 's d
Performance problem under load Xerces with Weblogic 9 x
remove ignored memory allocation
Commented: (XERCESJ 1177) SAXXMLStreamReader doesn 't always report namesp
Commented: (XERCESJ 977) Null pointer exception during DOM parsing
Commented: (XERCESJ 1197) Code cleanup for org apache xml serialize
Commented: (XERCESJ 1201) Initial contribution for StAX Event API
Updated: (XERCESJ 1061) Regex "$ " and "^ " characters treated as special c
Commented: (XERCESJ 1199) SAXXMLStreamReader should attempt to register a
Commented: (XERCESJ 1061) Regex "$ " and "^ " characters treated as special
Updated: (XERCESJ 589) Bug with pattern restriction on long strings
StackOverflow
xerces Range unnecessarily not garbage collectable if not detached
Updated: (XERCESJ 1178) Error getting prefix for an attribute with no nam
Bug in xs:redefine
Commented: (XERCESJ 1204) Can not set XMLEntityResolver for LSParser
Updated: (XERCESJ 1253) Prototype for SoC2007 project "Add support for th
Updated: (XERCESJ 1259) Add SteamFilter Function to SoC2007 project "Add
Assigned: (XERCESJ 444) SAXException thrown by EntityResolver is reported
Google Summer of Code 2007
Xerces J and XInclude relative path issue
Assigned: (XERCESJ 206) Stack overflow when using a schema validation
Commented: (XERCESJ 1215) Restrictions involving two levels of substituti
Closed: (XERCESJ 1203) NPE in XMLDTDProcessor
non overriding equals methoda
Resolved: (XERCESJ 1079) invalid value returned for TOTALDIGITS facet in
Xerces AS3 port
Updated: (XERCESJ 325) Regular Expression; Pattern "| " clause order de
Updated: (XERCESJ 1196) Javadoc generation fails on Java SE 5 0
Closed: (XERCESJ 1202) DTD validation on XIncluded documents when the sch
Created: (XERCESJ 1124) Nonspecific schema error message
a bug in xerces
Updated: (XERCESJ 1201) Initial contribution for StAX Event API
Closed: (XERCESJ 1254) Empty uris in targetNamespace attribute not report
Links
Home
Oracle database error code
 
Search:  
Power your search with and, or, +, -, or "some phrase" operators.
Is it possible to have a ModelGroup as a child of ModelGroup??

Is it possible to have a ModelGroup as a child of ModelGroup??

2003-08-19       - By Geoff Granum

I'm writing a bit of recursive code (which has most assuredly been written
by dozens before I), and I am wondering if there will ever be a case such
that a model group could ever be a direct child of a model group? I don't
believe that this would happen, but would like to be sure.

Essentially I need to be sure that when my function calls itself from the
model group block, it cannot go straight back into the model group block
again -- this would 'flatten' the tree, if it didn't crash outright. Here
is the code, just for kicks:

Alternativly, if there is some utility class that already does this that I
just haven't found, I'd love to hear about it :~)

This code, obviously, does not work yet. It DOES work for much of what I
need it for (normal elements). I don't implement wildcards becuase:
a.) I don't know quite how. Do you just ignore the children when
validating?
b.) I don't ever create XML schema with no-type empty elements; hence no
wildcards in my schema ( I think)


I have it working a different way currently, but am working on making it
easier to read and faster. Two things I'm not too great at :~)

Thanks!

 /**
  * Create a node from an XSObject. Returns <code>parent</code> after
attempting to append all nodes from
  * <code>obj</code>. This will likely require recurrsive calls to this
function. Sets values to their
  * defaults, if they are specified in the Schema.
  * @(protected) obj The XSObject to append to <code>parent</code> as a Node
object.
  * @(protected) parent The Node object to append to
  * @(protected) <code>parent</code>, after appending <code>obj</code> and all
of its children.
  */
 public Node getNode(XSObject obj, Node parent) {
  short objType = obj.getType();
  Node node = null;
  if (objType == XSConstants.PARTICLE) {
   obj = ( (XSParticleDecl) obj).getTerm(); // Either a
XSElementDeclaration, XSModelGroup, or an XSWildcard
       objType = obj.getType();
  }
  if (objType == XSConstants.MODEL_GROUP) {
   XSModelGroupImpl grp = (XSModelGroupImpl) obj;
   XSObjectList lst = grp.getParticles();
   XSParticle part = null;
   for (int i = 0; i < lst.getLength(); i++) {
    part = (XSParticleDecl) lst.item(i);
    parent = getNode(part, parent);  // This won't work if Model Groups can
have model groups for children!!!!!!!
   }
   return parent;
  }
  if (objType == XSConstants.ELEMENT_DECLARATION) {
   if ( (node = getNode(obj)) != null) {   // The other function, which I
need to get rid of. This function and that one rely on each other
    parent.appendChild(node);
   }
   return parent;
  }
   if (objType == XSConstants.WILDCARD) {
     System.out.println("wildcard");
/*@(protected) Implement wildcard

   }


   if (objType == XSConstants.TYPE_DEFINITION) {
     System.out.println("type def");
     XSTypeDefinition type = (XSTypeDefinition) obj;
     if (type.getTypeCategory() == type.COMPLEX_TYPE) {
       // handle COMPLEX_TYPE case
       XSComplexTypeDecl cType = (XSComplexTypeDecl) type;
       return getNode( (XSParticle) cType.getParticle(), parent);
     }
     else if (type.getTypeCategory() == type.SIMPLE_TYPE) {
       XSSimpleTypeDecl sType = (XSSimpleTypeDecl) obj;
       Node textNode = document.createTextNode("");
       parent.appendChild(textNode);
       return parent;

     }
     else {
       System.out.println("Error with TYPE_DECLARATION in
getNode(XSObject)");
     }

   }
   return parent;
}


--
Geoff Granum
granum@(protected)
Aeronautical & Astronautical Engineering,
Purdue University
West Lafayette, Indiana

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-user-unsubscribe@(protected)
For additional commands, e-mail: xerces-j-user-help@(protected)