21 #ifndef _SCHEMAPARSERH 22 #define _SCHEMAPARSERH 78 SchemaParser(
const std::string& Uri, std::string tns =
"",
79 std::ostream & log = std::cout,
const std::string & confPath=
"");
91 std::ostream & log = std::cout,
const std::string & confPath=
"");
103 bool parseSchemaTag();
116 const XSDType *getType(
const Qname & type,
bool checkImports =
true) ;
122 const XSDType *getType(
int id)
const;
129 const XSDType *getType(
int id, std::string &nameSpace);
136 ConstTypeList *getAllTypes()
const;
143 const Element *getElement(
const Qname & element,
bool checkImports=
true)
const;
151 const ElementList& getElements()
const;
156 int getNumElements()
const;
171 const AttributeList& getAttributes()
const;
176 int getNumAttributes()
const;
182 std::string getNamespace(
void)
const;
187 int getNumTypes()
const;
196 int getTypeId(
const Qname &,
bool create =
false);
203 bool isBasicType(
int sType)
const;
227 int getBasicContentType(
int typeId)
const;
251 bool isImported(
const std::string & ns)
const;
252 const SchemaParser* getImportedSchemaParser(
const std::string & ns)
const;
260 bool addImport(std::string ns, std::string location=
"");
272 bool addImports(
const std::vector<SchemaParser *>& schemaParsers);
292 void setWarningLevel(
int l);
297 void setSchemaPath(
const std::string& s);
304 void setUri(
const std::string& u );
311 const SchemaParser *getImportedSchema(std::string &nameSpace);
312 std::vector<ImportedSchema> &getImportedSchemas();
317 std::string getVersion()
const;
319 bool getElementQualified()
const;
320 std::string getTnsPrefix(
void)
const;
326 void print(std::ostream &) ;
332 Element parseElement(
bool & fwdRef);
338 void parseAnnotation();
354 bool parseImport(
void);
356 bool parseSchema(std::string tag=
"schema");
357 bool parseRedefine();
358 int checkImport(std::string nsp)
const;
360 void resolveForwardElementRefs();
361 void resolveForwardAttributeRefs();
362 bool& shouldResolve();
367 std::string tnsPrefix_;
368 std::string version_;
370 bool elementQualified_;
371 bool attributeQualified_;
372 bool deleteXmlParser_;
373 bool resolveFwdRefs_;
375 std::ifstream xmlStream_;
377 AttributeList lAttributes_;
379 AttributeGroupList lAttributeGroups_;
380 ConstraintList constraints_;
381 QNameList lForwardElemRefs_;
382 QNameList lForwardAttributeRefs_;
384 std::vector<ImportedSchema> importedSchemas_;
385 void error(std::string,
int level = 0);
387 std::ostream & logFile_;
388 std::string confPath_;
395 SchemaParser::shouldResolve()
397 return resolveFwdRefs_;
425 return checkImport(ns) != -1;
431 int i= checkImport(ns);
435 return importedSchemas_[i].sParser;
460 std::vector<SchemaParser::ImportedSchema>&
463 return importedSchemas_;
477 return elementQualified_ ;
const SchemaParser * getImportedSchemaParser(const std::string &ns) const
const AttributeList & getAttributes() const
std::list< Qname > QNameList
std::list< Constraint * > ConstraintList
const ElementList & getElements() const
bool getElementQualified() const
std::string getVersion() const
std::list< Attribute > AttributeList
std::list< Element > ElementList
std::list< Group > GroupList
void setUri(const std::string &u)
std::list< AttributeGroup * > AttributeGroupList
TypesTable * getTypesTable()
void setSchemaPath(const std::string &s)
std::vector< ImportedSchema > & getImportedSchemas()
std::string getTnsPrefix(void) const
void setWarningLevel(int l)
bool isImported(const std::string &ns) const
std::list< const XSDType * > ConstTypeList