Hi Michael,
If I understand you correctly, I have done this,

        XSElementDeclaration xsElemDel = elemPSVI.getElementDeclaration();
        XSTypeDefinition xsTypeDef = xsElemDel.getTypeDefinition();
        XSComplexTypeDefinition xsComplexTypeDef;
        if (xsElemDel.getTypeDefinition().getTypeCategory() ==
XSTypeDefinition.COMPLEX_TYPE) {
             typeString = "Complex";
             xsComplexTypeDef =
(XSComplexTypeDefinition)xsElemDel.getTypeDefinition();
        }

but xsComplexTypeDef  is shown "cannot be resolved". So, I guess how to get
hold of a XSComplexTypeDefinition is the problem. Is there other way to do
so?

thanks a lot,
David

On Sun, Jun 28, 2009 at 11:46 PM, Michael Glavassevich
<mrgla...@ca.ibm.com>wrote:

> 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