getEnclosingCTDefinition() is only going to work for local element declarations. A faster route than starting from the XSModel (which you can only retrieve from the validation root anyway) would be to get the type definition [1] from the ElementPSVI and walk to the XSParticle from there. Note that when there are multiple XSParticles whose term is the same element declaration determining which XSParticle matched requires that you also look at the preceding elements in the instance document. In general you also need to pay attention to wildcard particles (XSParticle.getTerm() -> XSWildcard).
Thanks. [1] http://xerces.apache.org/xerces2-j/javadocs/xs/org/apache/xerces/xs/ItemPSVI.html#getTypeDefinition () Michael Glavassevich XML Parser Development IBM Toronto Lab E-mail: mrgla...@ca.ibm.com E-mail: mrgla...@apache.org jeff.gr...@gmail.com wrote on 06/28/2009 09:39:07 PM: > Sorry to reply to my own post, but I forgot to mention that from the > XSElementDeclaration you can get its enclosing complex type definition > (using getEnclosingCTDefinition()) and from there work back to the > particle for the element declaration. > > Jeff > > On Sun, Jun 28, 2009 at 6:36 PM, Jeff Greif<jgr...@alumni.princeton. > edu> wrote: > > From the ElementPSVI on the root of the document, you can get the > > XSModel using getSchemaInformation. From there you can work your way > > through the complex type definition to the XSParticle whose term is > > the XSElementDeclaration in question, and get access to the > > max/minOccurs info. > > > > Jeff > > > > On Sun, Jun 28, 2009 at 1:00 PM, govelogo<govel...@gmail.com> wrote: > >> Hi Mukul, > >> I think you are right. I could not find a way to get > >> a XSComplexTypeDefinition from an ElementPSV. > >> I am building parser between XML and MS Excel for some business > analysts. To > >> be able to present an sequence type inside the Excel template as > required, I > >> need to know which elements are of sequence type. Is an XSParticle the only > >> way to tell whether a element is a sequence or not? > >> Thanks a lot, > >> David > >> On Sat, Jun 27, 2009 at 2:59 AM, Mukul Gandhi <gandhi.mu...@gmail.com> > >> wrote: > >>> > >>> Hi David, > >>> Using the public APIs provided in, XSElementDeclaration it seems > >>> you cannot retrieve occurrence indicator values (maxOccurs and > >>> minOccurs) of an element declaration. > >>> Perhaps somebody can correct me.. > >>> > >>> Just curious, why do you need to retrieve this information using an > >>> API, as an end user facility? > >>> > >>> On Fri, Jun 26, 2009 at 10:59 PM, govelogo<govel...@gmail.com> wrote: > >>> > Hi there, > >>> > I am trying to identify a complex type defined in a similar manner as > >>> > the > >>> > following sketch of schema. I was hoping to be able to get the > >>> > information > >>> > from a XSElementDeclaration class retrieved from an ElementPSVI class. > >>> > However, it seems I have not found the right method to do it. > >>> > <xs:complexType name="ArrayOfParameterType"> > >>> > <xs:sequence> > >>> > <xs:element name="item" type="ParameterType" nillable="true" > >>> > minOccurs="0" > >>> > maxOccurs="unbounded" /> > >>> > </xs:sequence> > >>> > </xs:complexType> > >>> > Is there a way I can tell the minOccurs and maxOccurs of the sequence of > >>> > an > >>> > element in using JAXP ? > >>> > thanks, > >>> > David > >>> > >>> > >>> -- > >>> Regards, > >>> Mukul Gandhi > >>> > >>> --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: j-users-unsubscr...@xerces.apache.org > >>> For additional commands, e-mail: j-users-h...@xerces.apache.org > >>> > >> > >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: j-users-unsubscr...@xerces.apache.org > For additional commands, e-mail: j-users-h...@xerces.apache.org