Did this message get eaten somewhere? Nobody responded to me. =snif= I may not be the best of programmers, but I'd still like to help. :)
Should this be an issue for the list? Post to bugzilla? Just send the patch? (I'd like to clean it up first, though... after some good suggestions) -Richard Balint ---------- Forwarded message ---------- Date: Thu, 27 Mar 2003 09:45:46 -0500 (EST) From: Sir Woody Hackswell <[EMAIL PROTECTED]> To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]> Subject: RFC: Schema annotation support Hello, all! I have a project in which I need to be able to use the <xsd:annotation> from a schema. After hours of studying undocumented code in the validators/ directory (hint hint... why are there no docs on the validators?) I came to the conclusion that annotations seem to be completely ignored after validation. A user has no way of getting that information back! So... I hacked the code. I'll submit for review my basic (and I mean BASIC!) API here. I'll take suggestions on what is really needed... not just what I need. I hope that this will make it into Xerces-C++ some day. :) -Richard Balint Ball Aerospace & Technology Corp. New Class: SchemaAnnot class ---------------------------- VALIDATORS_EXPORT SchemaAnnot { public : //----------------------------------------- // Constructors and Destructors //----------------------------------------- SchemaAnnot(); SchemaAnnot ( const DOMNode* appinfo , const DOMNode* documentation ); virtual ~SchemaAnnot(); // Reset SchemaAnnot.appinfo and SchemaAnnot.documentation to null void clear(); void setAppInfo( const DOMNode* appinfo ); void setDocumentation( const DOMNode* documentation ); const DOMNode* getAppInfoNode(); const DOMNode* getDocumentationNode(); bool hasAnnotation(); private : bool fHasAnnotation; DOMNode* fDocumentation; DOMNode* fAppInfo; }; } This class is insanely simple. I just wanted to get appinfo and documentation out of the schema. ;) This method returns cloned DOMNodes, and their children (the data). Additions to SchemaElementDecl API: ----------------------------------- virtual bool hasAnnotation() const; SchemaAnnot* getAnnotation() const; void setAnnotation(const DOMNode* appinfo, const DOMNode* documentation); void setAnnotation(const SchemaAnnot* annotation); additional private member: SchemaAnnot* fAnnotation; Additions to TraverseSchema: ---------------------------- *Additional code to pull out the annotations and attach it to the SchemaElementDecl's. *additional private member: SchemaAnnot* fCurrentAnnotation; --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]