Schema::SchemaParser Class Reference

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

typedef std::list<Element> Schema::SchemaParser::ElementList
 

typedefs

Definition at line 50 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, XmlUtils::fetchUri(), XmlPullParser::getEventType(), XmlPullParser::getName(), XmlPullParser::nextTag(), XmlPullParser::require(), XmlPullParser::setFeature(), 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.


Member Function Documentation

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

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

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

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

Referenced by addImports().

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

References Schema::TypesTable::addExtType(), Schema::TypesTable::getExtRefName(), Schema::TypesTable::getExtRefType(), and Schema::TypesTable::getNumExtRefs().

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

References getNumTypes(), and getType().

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 1779 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 1843 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::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 2090 of file SchemaParser.cpp.

References getType(), and Schema::XSDType::isSimple().

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

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

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

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

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.

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

getGroup

Parameters:
unique type identifier
Returns:
Group*

Definition at line 1810 of file SchemaParser.cpp.

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

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

Returns:
target namespace of the schema document

Definition at line 1876 of file SchemaParser.cpp.

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

int Schema::SchemaParser::getNumAttributes  )  const
 

Returns:
number of globally defined attributes in the schema

Definition at line 1962 of file SchemaParser.cpp.

int Schema::SchemaParser::getNumElements  )  const
 

Returns:
number of globally defined elements in the schema

Definition at line 1955 of file SchemaParser.cpp.

int Schema::SchemaParser::getNumTypes  )  const
 

Returns:
number of types defined in the schema (includes anonymous types)

Definition at line 1948 of file SchemaParser.cpp.

References Schema::TypesTable::getNumTypes().

Referenced by getAllTypes().

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

References getImportedSchema(), and getType().

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

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

Definition at line 1883 of file SchemaParser.cpp.

References Schema::TypesTable::getTypePtr().

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

getType

Parameters:
Qname refering to the type
Returns:
pointer to the type

Definition at line 1890 of file SchemaParser.cpp.

References getTypeId(), and Schema::TypesTable::getTypePtr().

Referenced by getAllTypes(), Schema::TypeContainer::getAttributeContainer(), Schema::TypeContainer::getBaseTypeContainer(), getBasicContentType(), getType(), WsdlPull::WsdlInvoker::setInputValue(), and Schema::SchemaValidator::validate().

int Schema::SchemaParser::getTypeId const Qname ,
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 1601 of file SchemaParser.cpp.

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

Referenced by getType().

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

getTypeName() return the type name given the id

Definition at line 2123 of file SchemaParser.cpp.

References Schema::TypesTable::getAtomicTypeName(), Schema::XSDType::getName(), Schema::TypesTable::getTypePtr(), and isBasicType().

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

getVersion() return the schema version

Definition at line 466 of file SchemaParser.h.

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

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

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().

bool Schema::SchemaParser::parseSchemaTag  ) 
 

parseSchemaTag

Returns:
true if parsing was successful ,false otherwise

Definition at line 145 of file SchemaParser.cpp.

References XmlPullParser::getAttributeCount(), XmlPullParser::getAttributeName(), XmlPullParser::getAttributeValue(), XmlPullParser::getDepth(), XmlPullParser::getEventType(), XmlPullParser::getNamespaceCount(), XmlPullParser::getNamespacePrefix(), XmlPullParser::getNamespaceUri(), XmlPullParser::next(), XmlPullParser::nextTag(), XmlPullParser::require(), Schema::SchemaUri, Schema::TypesTable::setTargetNamespace(), and XmlPullParser::START_TAG.

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

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.


The documentation for this class was generated from the following files:
Generated on Sun Aug 10 00:07:40 2008 for wsdlpull by  doxygen 1.4.6