Hi Nicolas,

At 02:50 PM 3/1/2006 +0200, Nicolas Tsokas wrote:
Hi Alberto...

Thanks indeed for your answer...

Yes, I've tried getAttName()... And it always gives me a pointer to
an invalid QName object. I mean qname->getPrefix(), qname->getLocalPart(),
etc. they all cause an exception...

That's strange, as I have used it successfully.


Here's my code: (the previous part of the code is the one you posted
on xerces-c mail archives on 02 Feb 2005)...

ComplexTypeInfo* pComplexType = pSchemaTypes->get(typeKey.getRawBuffer());
if (!pComplexType->hasAttDefs())
        return;

SchemaAttDefList& attDefList =
        (SchemaAttDefList&)pComplexType->getAttDefList();
unsigned int attCount = attDefList.getAttDefCount();
for (unsigned int i=0; i<attCount; i++)
{
        SchemaAttDef& attDef = (SchemaAttDef&)attDefList.getAttDef(i);
        attributes->add(attDef.getFullName());
        const QName* qnm = attDef.getAttName();
        const XMLCh* aaa = qnm->getPrefix();
}

Just to double check; can you remove the casts and work directly off the virtual table (this is the code I have been using in my app)? Like this:

XMLAttDefList& attDefList = pComplexType->getAttDefList();
unsigned int attCount = attDefList.getAttDefCount();
for (unsigned int i=0; i<attCount; i++)
{
        XMLAttDef& attDef = attDefList.getAttDef(i);
        attributes->add(attDef.getFullName());
        const QName* qnm = attDef.getAttName();
        const XMLCh* aaa = qnm->getPrefix();
}

Hope this helps,
Alberto

Thanks again Alberto... I really appreciate your help.

Nicolas




-----Original Message-----
From: Alberto Massari [mailto:[EMAIL PROTECTED]
Sent: Wednesday, March 01, 2006 2:32 PM
To: [email protected]
Subject: Re: Attribute namespace info through PSVI. Please help...!

Hi Nicolas,

At 02:00 PM 3/1/2006 +0200, Nicolas Tsokas wrote:
>Hi everyone,
>
>I'm trying to obtain info about an element using
>PSVI (trying to resolve allowed children and attributes
>for that specific element).
>
>I obtain a pointer to the corresponding
>ComplexTypeInfo object which describes the element. Then I
>get the names and namespaces of the allowed
>children for that element by using ComplextTypeInfo's
>elementAt(index) method and by obtaining
>pointers to SchemaElementDecl objects.
>
>I have a problem with the attributes, though:
>I get the list of attributes through
>getAttDefList() method of the ComplexTypeInfo object.
>Then I obtain a SchemaAttDef for each attribute.
>SchemaAttDef gives the attribute's name
>through its method getFullName(), but I cannot
>figure out any way of finding their namespaces
>(or namespace prefixes). Am I missing something?...

Have you tried with SchemaAttDef::getAttName()?
The QName* it returns should give you prefix, local name and namespace URI.

Alberto

>
>Can anybody please help me?
>
>Thank you so much in advance.
>
>Nicolas


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to