Schema::SchemaParser Class Reference

#include <SchemaParser.h>

Collaboration diagram for Schema::SchemaParser:

Collaboration graph
[legend]

List of all members.

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)
const XSDTypegetType (int id) const
const XSDTypegetType (int id, std::string &nameSpace)
ConstTypeListgetAllTypes () const
const ElementgetElement (const Qname &element) 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

Classes

struct  ImportedSchema


Detailed Description

Definition at line 42 of file SchemaParser.h.


Member Typedef Documentation

typedefs

Definition at line 50 of file SchemaParser.h.

Definition at line 51 of file SchemaParser.h.

Definition at line 52 of file SchemaParser.h.

Definition at line 53 of file SchemaParser.h.

Definition at line 54 of file SchemaParser.h.

Definition at line 55 of file SchemaParser.h.

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

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 46 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 29 of file SchemaParser.cpp.

Schema::SchemaParser::~SchemaParser (  ) 

Definition at line 119 of file SchemaParser.cpp.

References Schema::TypesTable::clean().


Member Function Documentation

bool Schema::SchemaParser::parseSchemaTag (  ) 

const XSDType * Schema::SchemaParser::getType ( const Qname type  ) 

const XSDType * Schema::SchemaParser::getType ( int  id  )  const

Parameters:
the types unique id
Returns:
pointer to the type

Definition at line 1892 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 1912 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 1944 of file SchemaParser.cpp.

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

const Element * Schema::SchemaParser::getElement ( const Qname element  )  const

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

Definition at line 1754 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 401 of file SchemaParser.h.

Referenced by main().

int Schema::SchemaParser::getNumElements (  )  const

Returns:
number of globally defined elements in the schema

Definition at line 1964 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 1788 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 408 of file SchemaParser.h.

int Schema::SchemaParser::getNumAttributes (  )  const

Returns:
number of globally defined attributes in the schema

Definition at line 1971 of file SchemaParser.cpp.

std::string Schema::SchemaParser::getNamespace ( void   )  const

Returns:
target namespace of the schema document

Definition at line 1885 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 1957 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

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

Definition at line 1610 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 1592 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 2099 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 1819 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 1852 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 421 of file SchemaParser.h.

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

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

Definition at line 427 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 2033 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 1991 of file SchemaParser.cpp.

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

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

Definition at line 1978 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 1658 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 415 of file SchemaParser.h.

Referenced by main().

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

Definition at line 438 of file SchemaParser.h.

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

Definition at line 445 of file SchemaParser.h.

Referenced by addImport().

std::string Schema::SchemaParser::getTypeName ( Schema::Type  t  )  const

TypesTable * Schema::SchemaParser::getTypesTable (  )  [inline]

Definition at line 452 of file SchemaParser.h.

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

Definition at line 1926 of file SchemaParser.cpp.

References Schema::SchemaUri.

Referenced by getType().

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

Definition at line 459 of file SchemaParser.h.

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

getVersion() return the schema version

Definition at line 466 of file SchemaParser.h.

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

Definition at line 473 of file SchemaParser.h.

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

Definition at line 481 of file SchemaParser.h.


The documentation for this class was generated from the following files:

Generated on Sat Jan 10 19:07:16 2009 for wsdlpull by  doxygen 1.5.5