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

Reply via email to