Mercurial > repos > ktnyt > gembassy
diff GEMBASSY-1.0.3/gsoap/wsdl/schema.h @ 2:8947fca5f715 draft default tip
Uploaded
author | ktnyt |
---|---|
date | Fri, 26 Jun 2015 05:21:44 -0400 |
parents | 84a17b3fad1f |
children |
line wrap: on
line diff
--- a/GEMBASSY-1.0.3/gsoap/wsdl/schema.h Fri Jun 26 05:20:29 2015 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,498 +0,0 @@ -/* - schema.h - - XSD binding schema interface - --------------------------------------------------------------------------------- -gSOAP XML Web services tools -Copyright (C) 2000-2013, Robert van Engelen, Genivia Inc. All Rights Reserved. -This software is released under one of the following licenses: -GPL or Genivia's license for commercial use. --------------------------------------------------------------------------------- -GPL license. - -This program is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free Software -Foundation; either version 2 of the License, or (at your option) any later -version. - -This program is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A -PARTICULAR PURPOSE. See the GNU General Public License for more details. - -You should have received a copy of the GNU General Public License along with -this program; if not, write to the Free Software Foundation, Inc., 59 Temple -Place, Suite 330, Boston, MA 02111-1307 USA - -Author contact information: -engelen@genivia.com / engelen@acm.org --------------------------------------------------------------------------------- -A commercial use license is available from Genivia, Inc., contact@genivia.com --------------------------------------------------------------------------------- - -*/ - -//gsoap xs schema documentation: XSD binding schema -//gsoap xs schema namespace: http://www.w3.org/2001/XMLSchema -//gsoap xs schema elementForm: qualified -//gsoap xs schema attributeForm: unqualified - -/* For the wsdl:arrayType attribute to support old style SOAP arrays: */ -//gsoap wsdl schema namespace: http://schemas.xmlsoap.org/wsdl/ - -#import "imports.h" - -class xs__schema; // forward declaration -class xs__simpleType; // forward declaration -class xs__complexType; // forward declaration -class xs__extension; // forward declaration -class xs__restriction; // forward declaration -class xs__seqchoice; // forward declaration -class xs__group; // forward declaration -class xs__list; // forward declaration -class xs__union; // forward declaration - -class xs__annotation -{ public: - char *documentation; -}; - -enum xs__formChoice { unqualified, qualified }; - -class xs__element -{ public: - // @xsd__ID id; - @xsd__NCName name; - @xsd__QName ref; - @xsd__QName type; - @xsd__string default_; - @xsd__QName default__; // also get QName value if element type is QName - @xsd__string fixed; - @xsd__QName fixed_; // also get QName value if element type is QName - @enum xs__formChoice *form; - @xsd__boolean nillable = false; - @xsd__boolean abstract = false; - @xsd__QName substitutionGroup; - @xsd__string minOccurs; // xsd:nonNegativeInteger - @xsd__string maxOccurs; // xsd:nonNegativeInteger|unbounded - @xsd__string xmime__expectedContentTypes; - xs__annotation *annotation; - xs__simpleType *simpleType; // choice - xs__complexType *complexType; // choice - xsd__string unique; // dummy, not used - private: - xs__schema *schemaRef; // schema to which this belongs - xs__element *elementRef; // traverse() finds ref - xs__simpleType *simpleTypeRef; // traverse() finds type or = simpleType above - xs__complexType *complexTypeRef; // traverse() finds type or = complexType above - std::vector<xs__element*> substitutions; // traverse() finds substitutionGroup elements for this abstract element - public: - xs__element(); - int traverse(xs__schema&); - void schemaPtr(xs__schema*); - void elementPtr(xs__element*); - void simpleTypePtr(xs__simpleType*); - void complexTypePtr(xs__complexType*); - xs__schema *schemaPtr() const; - xs__element *elementPtr() const; - xs__simpleType *simpleTypePtr() const; - xs__complexType *complexTypePtr() const; - const std::vector<xs__element*> *substitutionsPtr() const; -}; - -enum xs__attribute_use { optional, prohibited, required, default_, fixed_ }; - -class xs__attribute -{ public: - @xsd__NCName name; - @xsd__QName ref; - @xsd__QName type; - @enum xs__attribute_use use = optional; - @xsd__string default_; - @xsd__QName default__; // also get QName value if attribute type is QName - @xsd__string fixed; - @xsd__QName fixed_; // also get QName value if attribute type is QName - @enum xs__formChoice *form; - @xsd__QName wsdl__arrayType; // extensibility attribute added to simplify WSDL parsing - xs__annotation *annotation; - xs__simpleType *simpleType; - private: - xs__schema *schemaRef; // schema to which this belongs - xs__attribute *attributeRef; // traverse() finds ref - xs__simpleType *simpleTypeRef; // traverse() finds type or = simpleType above - public: - xs__attribute(); - int traverse(xs__schema&); - void schemaPtr(xs__schema*); - void attributePtr(xs__attribute*); - void simpleTypePtr(xs__simpleType*); - xs__schema *schemaPtr() const; - xs__attribute *attributePtr() const; - xs__simpleType *simpleTypePtr() const; -}; - -class xs__all -{ public: - std::vector<xs__element> element; - public: - int traverse(xs__schema&); -}; - -enum xs__processContents { strict, skip, lax }; - -typedef char *xs__namespaceList; // "##any" or "##other" or list of URI, "##targetNamespace", "##local" - -class xs__any -{ public: - @xs__namespaceList namespace_ = "##any"; - @enum xs__processContents processContents = strict; - @xsd__string minOccurs; // xsd:nonNegativeInteger - @xsd__string maxOccurs; // xsd:nonNegativeInteger|unbounded - std::vector<xs__element> element; - public: - int traverse(xs__schema&); -}; - -class xs__contents -{ public: - $int __union; - union xs__union_content - { xs__element *element; - xs__group *group; - xs__seqchoice *choice; - xs__seqchoice *sequence; - xs__any *any; - } __content; - public: - int traverse(xs__schema&); -}; - -class xs__seqchoice -{ public: - @xsd__string minOccurs; // xsd:nonNegativeInteger - @xsd__string maxOccurs; // xsd:nonNegativeInteger|unbounded - xs__annotation *annotation; - std::vector<xs__contents> __contents; - private: - xs__schema *schemaRef; // schema to which this belongs - public: - xs__seqchoice(); - int traverse(xs__schema&); - void schemaPtr(xs__schema*); - xs__schema *schemaPtr() const; -}; - -class xs__group -{ public: - @xsd__NCName name; - @xsd__QName ref; - @xsd__string minOccurs; // xsd:nonNegativeInteger - @xsd__string maxOccurs; // xsd:nonNegativeInteger|unbounded - xs__annotation *annotation; - xs__all *all; - xs__seqchoice *choice; - xs__seqchoice *sequence; - private: - xs__schema *schemaRef; // schema to which this belongs - xs__group *groupRef; // traverse() finds ref - public: - xs__group(); - int traverse(xs__schema&); - void schemaPtr(xs__schema*); - void groupPtr(xs__group*); - xs__schema *schemaPtr() const; - xs__group *groupPtr() const; -}; - -class xs__anyAttribute -{ public: - @xs__namespaceList namespace_ = "##any"; - @enum xs__processContents processContents = strict; -}; - -class xs__attributeGroup -{ public: - @xsd__NCName name; - @xsd__QName ref; - xs__annotation *annotation; - std::vector<xs__attribute> attribute; - std::vector<xs__attributeGroup> attributeGroup; - xs__anyAttribute *anyAttribute; - private: - xs__schema *schemaRef; - xs__attributeGroup *attributeGroupRef; - public: - xs__attributeGroup(); - int traverse(xs__schema&); - void schemaPtr(xs__schema*); - void attributeGroupPtr(xs__attributeGroup*); - xs__schema *schemaPtr() const; - xs__attributeGroup *attributeGroupPtr() const; -}; - -class xs__enumeration -{ public: - @xsd__string value; - @xsd__QName value_; // also get QName value if base type is QName - xs__annotation *annotation; - public: - int traverse(xs__schema&); -}; - -class xs__pattern -{ public: - @xsd__string value; - public: - int traverse(xs__schema&); -}; - -class xs__simpleContent -{ public: - xs__extension *extension; // choice - xs__restriction *restriction; // choice - public: - int traverse(xs__schema&); -}; - -class xs__simpleType -{ public: - @xsd__NMTOKEN name; - xs__annotation *annotation; - xs__restriction *restriction; // choice - xs__list *list; // choice - xs__union *union_; // choice - private: - xs__schema *schemaRef; - int level; - public: - xs__simpleType(); - int traverse(xs__schema&); - void schemaPtr(xs__schema*); - xs__schema *schemaPtr() const; - int baseLevel(); -}; - -class xs__extension -{ public: - @xsd__QName base; - xs__group *group; - xs__all *all; - xs__seqchoice *choice; - xs__seqchoice *sequence; - std::vector<xs__attribute> attribute; - std::vector<xs__attributeGroup> attributeGroup; - xs__anyAttribute *anyAttribute; - private: - xs__simpleType *simpleTypeRef; // traverse() finds type - xs__complexType *complexTypeRef; // traverse() finds type - public: - xs__extension(); - int traverse(xs__schema&); - void simpleTypePtr(xs__simpleType*); - void complexTypePtr(xs__complexType*); - xs__simpleType *simpleTypePtr() const; - xs__complexType *complexTypePtr() const; -}; - -class xs__length -{ public: - @xsd__string value; - @xsd__boolean fixed; - xs__annotation *annotation; -}; - -class xs__whiteSpace -{ public: - @xsd__string value; -}; - -class xs__restriction -{ public: - @xsd__QName base; - xs__simpleType *simpleType; // used in <simpleType><restriction> - xs__attributeGroup *attributeGroup;// not used in <simpleType><restriction> - xs__group *group; // not used in <simpleType><restriction> - xs__all *all; // not used in <simpleType><restriction> - xs__seqchoice *choice; // not used in <simpleType><restriction> - xs__seqchoice *sequence; // not used in <simpleType><restriction> - std::vector<xs__attribute> attribute; // not used in <simpleType><restriction> - xs__anyAttribute *anyAttribute; // not used in <simpleType><restriction> - std::vector<xs__enumeration> enumeration; - std::vector<xs__pattern> pattern; - xs__whiteSpace *whiteSpace; - xs__length *length; - xs__length *minLength; - xs__length *maxLength; - xs__length *precision; // 2000 schema - xs__length *scale; // 2000 schema - xs__length *totalDigits; // 2001 schema - xs__length *fractionDigits; // 2001 schema - xs__length *minInclusive; - xs__length *maxInclusive; - xs__length *minExclusive; - xs__length *maxExclusive; - xs__annotation *annotation; - private: - xs__simpleType *simpleTypeRef; // traverse() finds type - xs__complexType *complexTypeRef; // traverse() finds type - public: - xs__restriction(); - int traverse(xs__schema&); - void simpleTypePtr(xs__simpleType*); - void complexTypePtr(xs__complexType*); - xs__simpleType *simpleTypePtr() const; - xs__complexType *complexTypePtr() const; -}; - -class xs__list -{ public: - @xsd__QName itemType; - xs__restriction *restriction; // choice - std::vector<xs__simpleType> simpleType; // choice - private: - xs__simpleType *itemTypeRef; - public: - xs__list(); - int traverse(xs__schema&); - void itemTypePtr(xs__simpleType*); - xs__simpleType *itemTypePtr() const; -}; - -class xs__union -{ public: - @xsd__NMTOKENS memberTypes; // check if NMTOKENS is ok??? - std::vector<xs__simpleType> simpleType; - public: - int traverse(xs__schema&); -}; - -class xs__complexContent -{ public: - @xsd__boolean mixed = false; - xs__extension *extension; - xs__restriction *restriction; - public: - int traverse(xs__schema&); -}; - -class xs__complexType -{ public: - @xsd__NMTOKEN name; - @xsd__boolean abstract = false; - @xsd__boolean mixed = false; - xs__annotation *annotation; - xs__simpleContent *simpleContent; - xs__complexContent *complexContent; - xs__all *all; - xs__seqchoice *choice; - xs__seqchoice *sequence; - xs__any *any; - std::vector<xs__attribute> attribute; - std::vector<xs__attributeGroup> attributeGroup; - xs__anyAttribute *anyAttribute; - private: - xs__schema *schemaRef; - int level; - public: - xs__complexType(); - int traverse(xs__schema&); - void schemaPtr(xs__schema*); - xs__schema *schemaPtr() const; - int baseLevel(); -}; - -class xs__import -{ public: - @xsd__anyURI namespace_; - @xsd__anyURI schemaLocation; - private: - xs__schema *schemaRef; // set by WSDL parser or via schemaLocation - public: - xs__import(); - int traverse(xs__schema&); - void schemaPtr(xs__schema*); - xs__schema *schemaPtr() const; -}; - -class xs__include -{ public: - @xsd__anyURI schemaLocation; - private: - xs__schema *schemaRef; - public: - xs__include(); - int preprocess(xs__schema&); - int traverse(xs__schema&); - void schemaPtr(xs__schema*); - xs__schema *schemaPtr() const; -}; - -class xs__redefine -{ public: - @xsd__anyURI schemaLocation; - std::vector<xs__group> group; - std::vector<xs__attributeGroup> attributeGroup; - std::vector<xs__simpleType> simpleType; - std::vector<xs__complexType> complexType; - private: - xs__schema *schemaRef; - public: - xs__redefine(); - int preprocess(xs__schema&); - int traverse(xs__schema&); - void schemaPtr(xs__schema*); - xs__schema *schemaPtr() const; -}; - -class xs__schema -{ public: - @xsd__anyURI targetNamespace = ""; - @xsd__string version; - @enum xs__formChoice attributeFormDefault = unqualified; - @enum xs__formChoice elementFormDefault = unqualified; - xs__annotation *annotation; - std::vector<xs__include> include; - std::vector<xs__redefine> redefine; - std::vector<xs__import> import; - std::vector<xs__attribute> attribute; - std::vector<xs__element> element; - std::vector<xs__group> group; - std::vector<xs__attributeGroup> attributeGroup; - std::vector<xs__simpleType> simpleType; - std::vector<xs__complexType> complexType; - struct soap *soap; - private: - bool updated; - char* location; - int redirs; - SetOfString builtinTypeSet; - SetOfString builtinElementSet; - SetOfString builtinAttributeSet; - public: - xs__schema(); - xs__schema(struct soap*); - xs__schema(struct soap*, const char*, const char*); - virtual ~xs__schema(); - int get(struct soap*); // gSOAP getter is triggered after parsing - int preprocess(); - int insert(xs__schema&); - int traverse(); - int read(const char*, const char*); - void sourceLocation(const char*); - const char* sourceLocation(); - int error(); - void print_fault(); - void builtinType(const char*); - void builtinElement(const char*); - void builtinAttribute(const char*); - const SetOfString& builtinTypes() const; - const SetOfString& builtinElements() const; - const SetOfString& builtinAttributes() const; - bool empty() const; - friend ostream& operator<<(ostream&, const xs__schema&); - friend istream& operator>>(istream&, xs__schema&); -}; - -extern ostream &operator<<(ostream &o, const xs__schema &e); -extern istream &operator>>(istream &i, xs__schema &e); -