Schema::SchemaParser Class Reference

#include <SchemaParser.h>

List of all members.

Classes

struct  ImportedSchema

Public Types

typedef std::list< ElementElementList
typedef std::list< AttributeAttributeList
typedef std::list< GroupGroupList
typedef std::list
< AttributeGroup * > 
AttributeGroupList
typedef std::list< Constraint * > ConstraintList
typedef std::list< QnameQNameList
typedef std::list< const
XSDType * > 
ConstTypeList

Public Member Functions

Constructors and Destructors

 SchemaParser (const std::string &Uri, std::string tns="", std::ostream &log=std::cout, const std::string &confPath="")
 SchemaParser (XmlPullParser *parser, std::string tns="", std::ostream &log=std::cout, const std::string &confPath="")
 ~SchemaParser ()
methods used for parsing

bool parseSchemaTag ()
Various Getter methods

const XSDTypegetType (const Qname &type, bool checkImports=true)
const XSDTypegetType (int id) const
const XSDTypegetType (int id, std::string &nameSpace)
ConstTypeListgetAllTypes () const
const ElementgetElement (const Qname &element, bool checkImports=true) const
const ElementListgetElements () const
int getNumElements () const
AttributegetAttribute (const Qname &attribute)
const AttributeListgetAttributes () const
int getNumAttributes () const
std::string getNamespace (void) const
int getNumTypes () const
int getTypeId (const Qname &, bool create=false)
bool isBasicType (int sType) const
int getBasicContentType (int typeId) const
GroupgetGroup (const Qname &name)
AttributeGroupgetAttributeGroup (const Qname &name)
Methods for handling Imports

bool isImported (const std::string &ns) const
const SchemaParsergetImportedSchemaParser (const std::string &ns) const
bool addImport (std::string ns, std::string location="")
bool addImport (SchemaParser *sp)
bool addImports (const std::vector< SchemaParser * > &schemaParsers)
Miscellaneous Methods

bool finalize (void)
void setWarningLevel (int l)
void setSchemaPath (const std::string &s)
void setUri (const std::string &u)
std::string getTypeName (Schema::Type t) const
TypesTablegetTypesTable ()
const SchemaParsergetImportedSchema (std::string &nameSpace)
std::vector< ImportedSchema > & getImportedSchemas ()
std::string getVersion () const
bool getElementQualified () const
std::string getTnsPrefix (void) const

Detailed Description

Definition at line 42 of file SchemaParser.h.


Member Typedef Documentation

typedefs

Definition at line 50 of file SchemaParser.h.

typedefs

Definition at line 51 of file SchemaParser.h.

typedefs

Definition at line 52 of file SchemaParser.h.

typedefs

Definition at line 53 of file SchemaParser.h.

typedefs

Definition at line 54 of file SchemaParser.h.

typedefs

Definition at line 55 of file SchemaParser.h.

typedef std::list< const XSDType *> Schema::SchemaParser::ConstTypeList

typedefs

Definition at line 56 of file SchemaParser.h.


Constructor & Destructor Documentation

Schema::SchemaParser::SchemaParser ( const std::string &  Uri,
std::string  tns = "",
std::ostream &  log = std::cout,
const std::string &  confPath = "" 
)

The constructor for SchemaParser

Parameters:
the URI schema definition file.
target namespace
output stream for any error outputs
confPath The path where schema files for soap and other namespaces are located. This is required only if you have stored them other than src/schemas on windows. On *nix it is almost never required if you install using the make install

Definition at line 49 of file SchemaParser.cpp.

References XmlPullParser::END_DOCUMENT, FEATURE_PROCESS_NAMESPACES, XmlUtils::fetchUri(), XmlPullParser::getEventType(), XmlPullParser::getName(), XmlPullParser::nextTag(), XmlPullParser::require(), XmlPullParser::setFeature(), XmlPullParser::START_DOCUMENT, and XmlPullParser::START_TAG.

Referenced by addImport().

Schema::SchemaParser::SchemaParser ( XmlPullParser parser,
std::string  tns = "",
std::ostream &  log = std::cout,
const std::string &  confPath = "" 
)

The constructor for SchemaParser

Parameters:
XmlPullParser instance for the schema definition file.
target namespace
output stream for any error outputs
confPath The path where schema files for soap and other namespaces are located. This is required only if you have stored them other than src/schemas on windows. On *nix it is almost never required if you install using the make install

Definition at line 32 of file SchemaParser.cpp.

Schema::SchemaParser::~SchemaParser (  ) 

The constructor for SchemaParser

Parameters:
the URI schema definition file.
target namespace
output stream for any error outputs
confPath The path where schema files for soap and other namespaces are located. This is required only if you have stored them other than src/schemas on windows. On *nix it is almost never required if you install using the make install

Definition at line 122 of file SchemaParser.cpp.

References Schema::TypesTable::clean().


Member Function Documentation

bool Schema::SchemaParser::parseSchemaTag (  ) 
const XSDType * Schema::SchemaParser::getType ( const Qname type,
bool  checkImports = true 
)
const XSDType * Schema::SchemaParser::getType ( int  id  )  const
Parameters:
the types unique id
Returns:
pointer to the type

Definition at line 1895 of file SchemaParser.cpp.

References Schema::TypesTable::getTypePtr().

const XSDType * Schema::SchemaParser::getType ( int  id,
std::string &  nameSpace 
)
Parameters:
the types unique id
the namespace of the type
Returns:
pointer to the type

Definition at line 1923 of file SchemaParser.cpp.

References getImportedSchema(), and getType().

list< const XSDType * > * Schema::SchemaParser::getAllTypes (  )  const
Returns:
a std::list of all types defined in the schema including anonymous types caller *MUST* free the std::list but not the std::list members

Definition at line 1955 of file SchemaParser.cpp.

References getNumTypes(), getType(), and Schema::XSD_ANYURI.

const Element * Schema::SchemaParser::getElement ( const Qname element,
bool  checkImports = true 
) const
Parameters:
Qname of the element
Returns:
pointer to a globally defined element in the schema set this to false to search for elements defined in this schema

Definition at line 1757 of file SchemaParser.cpp.

References Qname::getLocalName(), Qname::getNamespace(), and Schema::SchemaUri.

Referenced by WsdlPull::Soap::handleElement(), WsdlPull::Soap::isSoapBody(), WsdlPull::Soap::isSoapHeader(), and main().

const SchemaParser::ElementList & Schema::SchemaParser::getElements (  )  const [inline]

returns the std::list of all the global elements in the schema

Parameters:
void 
Returns:
std::list<Element>

Definition at line 403 of file SchemaParser.h.

Referenced by main().

int Schema::SchemaParser::getNumElements (  )  const
Returns:
number of globally defined elements in the schema

Definition at line 1975 of file SchemaParser.cpp.

Attribute * Schema::SchemaParser::getAttribute ( const Qname attribute  ) 

getAttribute

Parameters:
Qname of the attribute
Returns:
pointer to a globally defined attribute in the schema

Definition at line 1791 of file SchemaParser.cpp.

References Qname::getLocalName(), Qname::getNamespace(), and Schema::SchemaUri.

const SchemaParser::AttributeList & Schema::SchemaParser::getAttributes (  )  const [inline]

returns a std::list of global attributes in the schema

Parameters:
void 
Returns:
std::list<Attribute>

Definition at line 410 of file SchemaParser.h.

int Schema::SchemaParser::getNumAttributes (  )  const
Returns:
number of globally defined attributes in the schema

Definition at line 1982 of file SchemaParser.cpp.

std::string Schema::SchemaParser::getNamespace ( void   )  const
Returns:
target namespace of the schema document

Definition at line 1888 of file SchemaParser.cpp.

Referenced by addImport(), addImports(), Schema::SchemaValidator::instance(), main(), and Schema::SchemaValidator::validate().

int Schema::SchemaParser::getNumTypes (  )  const
Returns:
number of types defined in the schema (includes anonymous types)

Definition at line 1968 of file SchemaParser.cpp.

References Schema::TypesTable::getNumTypes().

Referenced by getAllTypes().

int Schema::SchemaParser::getTypeId ( const Qname type,
bool  create = false 
)

getTypeId :Search for a type ,if not present create one,checks in imported types as well

Parameters:
Qname of the type
bool:create 
Returns:
type id

Definition at line 1613 of file SchemaParser.cpp.

References Schema::TypesTable::addExternalTypeId(), addImport(), Qname::getNamespace(), Schema::TypesTable::getTypeId(), Schema::SchemaUri, and Schema::XSD_INVALID.

Referenced by getType(), and main().

bool Schema::SchemaParser::isBasicType ( int  sType  )  const

isBasicType

Parameters:
unique type identifier
Returns:
true if its a basic schema type false otherwise

Definition at line 1595 of file SchemaParser.cpp.

References Schema::XSD_ANYURI, and Schema::XSD_INVALID.

Referenced by getTypeName(), Schema::TypeContainer::getValue(), Schema::TypeContainer::rewind(), and Schema::SchemaValidator::validate().

int Schema::SchemaParser::getBasicContentType ( int  typeId  )  const

getBasicContentType

If the type has a simple content model then this method returns the basic schema type which defines its contents For example calling on a type like below would return Schema::STRING

<xsd:complexType> <xsd:simpleContent> <xsd:extension base = "xsd:std::string"> <xsd:attribute name = "lang" type = "xsd:std::string"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType>

Parameters:
unique type identifier
Returns:
type id of the basic type from which this type is derived or if the typeId is one of the atomic types,the same value is returned If the typeId is a complex type Schema::XSD_INVALID is returned

Definition at line 2110 of file SchemaParser.cpp.

References Schema::XSDType::getContentModel(), Schema::ComplexType::getContentType(), getType(), Schema::XSDType::isSimple(), Schema::Simple, and Schema::XSD_INVALID.

Referenced by Schema::TypeContainer::getValue(), Schema::TypeContainer::print(), Schema::TypeContainer::rewind(), and Schema::SchemaValidator::validate().

Group * Schema::SchemaParser::getGroup ( const Qname name  ) 

getGroup

Parameters:
unique type identifier
Returns:
Group*

Definition at line 1822 of file SchemaParser.cpp.

References Qname::getLocalName(), Qname::getNamespace(), and Schema::SchemaUri.

AttributeGroup * Schema::SchemaParser::getAttributeGroup ( const Qname name  ) 

getAttributeGroup

Parameters:
unique type identifier
Returns:
AttributeGroup*

Definition at line 1855 of file SchemaParser.cpp.

References Qname::getLocalName(), Qname::getNamespace(), and Schema::SchemaUri.

bool Schema::SchemaParser::isImported ( const std::string &  ns  )  const [inline]

isImported true if the schema parser imports a namespace

Definition at line 423 of file SchemaParser.h.

Referenced by Schema::SchemaValidator::validate().

const SchemaParser * Schema::SchemaParser::getImportedSchemaParser ( const std::string &  ns  )  const [inline]

isImported true if the schema parser imports a namespace

Definition at line 429 of file SchemaParser.h.

Referenced by Schema::SchemaValidator::validate().

bool Schema::SchemaParser::addImport ( std::string  ns,
std::string  location = "" 
)

addImport .Instructs the schema parser to import a namespace

Parameters:
namespace of the schema
(optional)schemaLocation .If this is not passed ,schema file is not processed but any refernces to the namespace are not flagged as errors
Returns:
true if the schema was succesfully imported.If location is not passed always returns true

Definition at line 2044 of file SchemaParser.cpp.

References XmlUtils::fetchUri(), Schema::SchemaParser::ImportedSchema::ns, parseSchemaTag(), SchemaParser(), setUri(), and Schema::SchemaParser::ImportedSchema::sParser.

Referenced by addImports(), and getTypeId().

bool Schema::SchemaParser::addImport ( SchemaParser sp  ) 

addImport . imports the namespace of the schemaparser

Parameters:
SchemaParser instance which has parsed the namespace
Returns:
true if the schema was succesfully imported .

Definition at line 2002 of file SchemaParser.cpp.

References getNamespace(), Schema::SchemaParser::ImportedSchema::ns, and Schema::SchemaParser::ImportedSchema::sParser.

bool Schema::SchemaParser::addImports ( const std::vector< SchemaParser * > &  schemaParsers  ) 

isImported true if the schema parser imports a namespace

Definition at line 1989 of file SchemaParser.cpp.

References addImport(), and getNamespace().

bool Schema::SchemaParser::finalize ( void   ) 

finalize : tries to match unresolved types and references with imported schemas you *must* call this to ensure successful type resolution

Returns:
true if all type references are resolved ,false otherwise

Definition at line 1661 of file SchemaParser.cpp.

References Schema::TypesTable::addExtType(), Schema::TypesTable::detectUndefinedTypes(), Schema::TypesTable::getExtRefName(), Schema::TypesTable::getExtRefType(), Qname::getNamespace(), Schema::TypesTable::getNumExtRefs(), and Schema::TypesTable::printUndefinedTypes().

void Schema::SchemaParser::setWarningLevel ( int  l  )  [inline]

setWarningLevel default is 0 . 1 is wanrning level 2 is information level //quite verbose

Definition at line 417 of file SchemaParser.h.

Referenced by main().

void Schema::SchemaParser::setSchemaPath ( const std::string &  s  )  [inline]

finalize : tries to match unresolved types and references with imported schemas you *must* call this to ensure successful type resolution

Returns:
true if all type references are resolved ,false otherwise

Definition at line 440 of file SchemaParser.h.

void Schema::SchemaParser::setUri ( const std::string &  u  )  [inline]

finalize : tries to match unresolved types and references with imported schemas you *must* call this to ensure successful type resolution

Returns:
true if all type references are resolved ,false otherwise

Definition at line 447 of file SchemaParser.h.

Referenced by addImport().

std::string Schema::SchemaParser::getTypeName ( Schema::Type  t  )  const
TypesTable * Schema::SchemaParser::getTypesTable (  )  [inline]

finalize : tries to match unresolved types and references with imported schemas you *must* call this to ensure successful type resolution

Returns:
true if all type references are resolved ,false otherwise

Definition at line 454 of file SchemaParser.h.

const SchemaParser * Schema::SchemaParser::getImportedSchema ( std::string &  nameSpace  ) 

finalize : tries to match unresolved types and references with imported schemas you *must* call this to ensure successful type resolution

Returns:
true if all type references are resolved ,false otherwise

Definition at line 1937 of file SchemaParser.cpp.

References Schema::SchemaUri.

Referenced by getType().

std::vector< SchemaParser::ImportedSchema > & Schema::SchemaParser::getImportedSchemas (  )  [inline]

finalize : tries to match unresolved types and references with imported schemas you *must* call this to ensure successful type resolution

Returns:
true if all type references are resolved ,false otherwise

Definition at line 461 of file SchemaParser.h.

std::string Schema::SchemaParser::getVersion (  )  const [inline]

getVersion() return the schema version

Definition at line 468 of file SchemaParser.h.

bool Schema::SchemaParser::getElementQualified (  )  const [inline]

finalize : tries to match unresolved types and references with imported schemas you *must* call this to ensure successful type resolution

Returns:
true if all type references are resolved ,false otherwise

Definition at line 475 of file SchemaParser.h.

std::string Schema::SchemaParser::getTnsPrefix ( void   )  const [inline]

finalize : tries to match unresolved types and references with imported schemas you *must* call this to ensure successful type resolution

Returns:
true if all type references are resolved ,false otherwise

Definition at line 483 of file SchemaParser.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated by  doxygen 1.6.2