Ok, I've found the following issue { Grammar* g = parser->getGrammar(uri);
if (g) { XMLSize_t id = g->getElemId(0, localname, qname, Grammar::TOP_LEVEL_SCOPE); XMLElementDecl* elemDecl = g->getElemDecl(id); <- this throws me a debug assertion error ( _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)) XMLCh* baseName = elemDecl->getBaseName(); char * c = XMLString::transcode(baseName); } } I'm using xerces 3.0.0 on Visual Studio 2005 (in debug). Maybe is this a known bug? Thanks! ---------------------- Hi! this is my first message to the list. I have a small problem I'm writting a parser for GML 3.1. I have some done and working. But now I would like to have a les static parser than the one I have now in order to support features inside the grammar for those that I didn't write a specific handler. As a result the new parser can read any kind of gml type, even those that provide their own xsd. Now, in order to import the data contained in the file to my object model I need to know which type within the schema set is each of the elements that I'm reading. That is, when startElement event happens I would like to know what's the element's type for the qname I receive. I have been looking for documentation. But I can't find it out! I guess I have to retreive the grammar from the parser, and then ask the grammar which is the elementId. Then, with the ID I can know what I need. But, I found no way to get this up. Does someone know how this operation is done normally (with a piece of sample code, please)? Any comments are more than welcome! Thanks!