From ca478083c0a7584a3ee8bb568c4162bc279b9dec Mon Sep 17 00:00:00 2001 From: konrad Date: Sat, 31 Jul 2010 10:16:41 +0000 Subject: [PATCH] add some schema files make more consistent use of namespaces in PHP prep for SOAP encoding in PHP git-svn-id: https://silmor.de/svn/softmagic/pack/trunk@580 6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33 --- phpbase/exception.php | 10 +- phpbase/transaction.php | 38 +- woc/php/phptrans.cpp | 26 +- woc/proc/processor.cpp | 25 + woc/proc/processor.h | 27 +- woc/soap/schema.xsd | 2534 ++++++++++++++++++++++++++++++++++++++++++++++ woc/soap/schemafiles.qrc | 9 + woc/soap/soap.pri | 1 + woc/soap/soap12.xsd | 165 +++ woc/soap/wob-base.xsd | 25 + woc/soap/xml.xsd | 287 ++++++ woc/woc.pro | 1 + 12 files changed, 3126 insertions(+), 22 deletions(-) create mode 100644 woc/soap/schema.xsd create mode 100644 woc/soap/schemafiles.qrc create mode 100644 woc/soap/soap.pri create mode 100644 woc/soap/soap12.xsd create mode 100644 woc/soap/wob-base.xsd create mode 100644 woc/soap/xml.xsd diff --git a/phpbase/exception.php b/phpbase/exception.php index e4dfbc3..747f81f 100644 --- a/phpbase/exception.php +++ b/phpbase/exception.php @@ -18,19 +18,25 @@ class WobTransactionError extends Exception { protected $etype="_system"; protected $estr=""; + protected $trans=null; - public function __construct($errorString,$errorType="_system") + public function __construct(WobTransactionBase $trans,$errorString,$errorType="_system") { parent::__construct($errorString); $this->etype=$errorType; $this->estr=$errorString; + $this->trans=$trans; } /**used by machine oriented transaction to print the proper XML representation of the error*/ public function printXml() { header("X-WobResponse-Status: Error"); - print("etype)."\">".xq($this->estr)."\n"); + $xml=new DOMDocument; + $root=$xml->createElementNS($this->trans->xmlPackNamespace(),"WobError",$this->estr); + $root->setAttribute("type",$this->etype); + $xml->appendChild($root); + print($xml->saveXml()); } /**returns the error type*/ diff --git a/phpbase/transaction.php b/phpbase/transaction.php index 96cb2df..25cd9dd 100644 --- a/phpbase/transaction.php +++ b/phpbase/transaction.php @@ -20,6 +20,12 @@ class WobTransactionBase { protected $aoutput; protected $toutput; + //these encoding constants must match the WocProcessor::MessageEncoding enum + /**encode messages according to PACK standard - with minimal XML levels*/ + const WobEncoding=0; + /**encode messages in a mode compatible with SOAP 1.2, which is much less effective than WobEncoding*/ + const Soap12Encoding=1; + protected static $running=""; /**returns the name of the currently running transaction*/ @@ -29,13 +35,11 @@ class WobTransactionBase { static public function getTransactionName(){ global $_SERVER; if($_SERVER["REQUEST_METHOD"] != "POST"){ - header("X-WobResponse-Status: Error"); - print("".tr("Request is not a POST Request, Aborting.")."\n"); + throw new WobTransactionError($this,tr("Request is not a POST Request, Aborting."),"non-post"); exit(); } if(!isset($_SERVER["HTTP_X_WOBREQUEST"])){ - header("X-WobResponse-Status: Error"); - print("".tr("Request is not a Wob Request, Aborting.")."\n"); + throw new WobTransactionError($this,tr("Request is not a Wob Request, Aborting."),"non-wob"); exit(); } self::$running=$_SERVER["HTTP_X_WOBREQUEST"]; @@ -52,19 +56,19 @@ class WobTransactionBase { static public function noSuchTransaction() { $this->abortTransaction(); - throw new WobTransactionError(tr("Request is not known, Aborting."),"non-wob"); + throw new WobTransactionError($this,tr("Request is not known, Aborting."),"non-wob"); } /**called if authentication fails*/ public function notAuthenticated(){ $this->abortTransaction(); - throw new WobTransactionError(tr("User is not authenticated or does not have permission to execute this request, Aborting."),"auth"); + throw new WobTransactionError($this,tr("User is not authenticated or does not have permission to execute this request, Aborting."),"auth"); } /**called if XML parsing fails*/ public function xmlParserError(){ $this->abortTransaction(); - throw new WobTransactionError(tr("Error while parsing request XML, Aborting."),"xml"); + throw new WobTransactionError($this,tr("Error while parsing request XML, Aborting."),"xml"); } /**called for generic exception handling*/ @@ -73,7 +77,7 @@ class WobTransactionBase { if(is_a($ex,"WobTransactionError")) throw $ex; $this->abortTransaction(); - throw new WobTransactionError($ex->getMessage(),"exception"); + throw new WobTransactionError($this,$ex->getMessage(),"exception"); } /**called to abort a transactions flow @@ -82,7 +86,7 @@ class WobTransactionBase { */ public function abortWithError($text,$type="server"){ $this->abortTransaction(); - throw new WobTransactionError($text,$type); + throw new WobTransactionError($this,$text,$type); } /**called internally if a transaction is not implemented*/ @@ -109,13 +113,25 @@ class WobTransactionBase { protected function xmlCreate($elem){ $r=array(); $r["doc"]=new DOMDocument; - $r["root"]=$r["doc"]->createElementNS($this->xmlNamespace(),$elem); + $r["root"]=$r["doc"]->createElementNS($this->xmlProjectNamespace(),$elem); return $r; } /**internal: converts XML array to string representation*/ protected function xmlToString($xml){ - $xml["doc"]->appendChild($xml["root"]); + if($this->messageEncoding()==self::WobEncoding){ + //simply put it in + $xml["doc"]->appendChild($xml["root"]); + }else{ + $soapNS=$this->xmlSoap12Namespace(); + $env=$xml["doc"]->createElementNS($soapNS,"SOAP-ENV:Envelope"); + //TODO: construct header + //create body + $body=$xml["doc"]->createElementNS($soapNS,"SOAP-ENV:Body"); + $env->appendChild($body); + //put envelope into document + $xml["doc"]->appendChild($env); + } return $xml["doc"]->saveXml(); } }; diff --git a/woc/php/phptrans.cpp b/woc/php/phptrans.cpp index 0413c4c..594d65d 100644 --- a/woc/php/phptrans.cpp +++ b/woc/php/phptrans.cpp @@ -43,13 +43,25 @@ WocPHPTransaction::WocPHPTransaction(WocPHPOut*p ): QObject(p) void WocPHPTransaction::transInfo() { WocProcessor*woc=WocProcessor::instance(); - m_transact.write(QString(" static public function commVersion(){return \""+woc->verComm()+"\";}\n").toAscii()); - m_transact.write(QString(" static public function needCommVersion(){return \""+woc->verNeedComm()+"\";}\n").toAscii()); - m_transact.write(QString(" static public function version(){return \""+woc->verHR()+"\";}\n").toAscii()); - m_transact.write(QString(" static public function svnVersion(){return \""+woc->svnRevision()+"\";}\n\n").toAscii()); - m_transact.write(QString(" static public function svnRepositoryRoot(){return \""+woc->svnRepositoryRoot()+"\";}\n\n").toAscii()); - m_transact.write(QString(" static public function svnRepositoryUrl(){return \""+woc->svnRepositoryUrl()+"\";}\n\n").toAscii()); - m_transact.write(QString(" static public function xmlNamespace(){return \""+woc->xmlNamespace()+"\";}\n\n").toAscii()); + QString code; + code+=" static public function commVersion(){return \""+woc->verComm()+"\";}\n"; + code+=" static public function needCommVersion(){return \""+woc->verNeedComm()+"\";}\n"; + code+=" static public function version(){return \""+woc->verHR()+"\";}\n"; + code+=" static public function svnVersion(){return \""+woc->svnRevision()+"\";}\n"; + code+=" static public function svnRepositoryRoot(){return \""+woc->svnRepositoryRoot()+"\";}\n"; + code+=" static public function svnRepositoryUrl(){return \""+woc->svnRepositoryUrl()+"\";}\n"; + code+="\n"; + code+=" static public function xmlProjectNamespace(){return \""+woc->xmlProjectNamespace()+"\";}\n"; + code+=" static public function xmlPackNamespace(){return \""+woc->xmlPackNamespace()+"\";}\n"; + code+=" static public function xmlSoap12Namespace(){return \""+woc->xmlSoap12Namespace()+"\";}\n"; + code+=" static public function xmlSchemaNamespace(){return \""+woc->xmlSchemaNamespace()+"\";}\n"; + code+=" static public function xmlXmlNamespace(){return \""+woc->xmlXmlNamespace()+"\";}\n"; + code+="\n"; + code+=" static public function messageEncoding(){return "+ + QString::number((int)woc->messageEncoding())+";}\n"; + code+="\n"; + m_transact.write(code.toAscii()); + } void WocPHPTransaction::transInfo2() diff --git a/woc/proc/processor.cpp b/woc/proc/processor.cpp index 40b0e33..51136af 100644 --- a/woc/proc/processor.cpp +++ b/woc/proc/processor.cpp @@ -54,6 +54,8 @@ WocProcessor::WocProcessor() m_dbUpd=false; m_error=false; m_projname="WobProject"; + m_encmode=WobEncoding; + parseNamespaces(); inst=this; } @@ -130,6 +132,9 @@ bool WocProcessor::processFile(QString fn) if(el.hasAttribute("name")) m_projname=el.attribute("name"); m_xmlNS=el.attribute("xml-namespace"); + QString enc=el.attribute("encoding","wob").toLower(); + if(enc=="soap"||enc=="soap12")m_encmode=Soap12Encoding; + else m_encmode=WobEncoding; }else if(tn=="Include"){ if(!processFile(m_baseDir+"/"+m_wobDir+"/"+el.attribute("file"))) @@ -339,6 +344,26 @@ QStringList WocProcessor::privilegeNames()const return l; } +static inline QString getXmlNamespace(QString f) +{ + QFile fd(f); + if(!fd.open(QIODevice::ReadOnly)) + return QString(); + QDomDocument doc; + if(!doc.setContent(&fd)) + return QString(); + QDomElement root=doc.documentElement(); + return root.attribute("targetNamespace"); +} + +void WocProcessor::parseNamespaces() +{ + m_xmlPackNS=getXmlNamespace(":/wob-base.xsd"); + m_xmlSchemaNS=getXmlNamespace(":/schema.xsd"); + m_xmlSoap12NS=getXmlNamespace(":/soap12.xsd"); + m_xmlXmlNS=getXmlNamespace(":/xml.xsd"); +} + /****************************************************************************** * WocOutput ******************************************************************************/ diff --git a/woc/proc/processor.h b/woc/proc/processor.h index 3f2ddb6..1bdc55b 100644 --- a/woc/proc/processor.h +++ b/woc/proc/processor.h @@ -100,8 +100,26 @@ class WocProcessor:public QObject QString dbSchema()const{return m_dbSchema;} /**returns the database schema version*/ QString dbVersion()const{return m_dbVer;} + /**returns the XML namespace of the project*/ - QString xmlNamespace()const{return m_xmlNS;} + QString xmlProjectNamespace()const{return m_xmlNS;} + /**returns the XML namespace for Wob base elements*/ + QString xmlPackNamespace()const{return m_xmlPackNS;} + /**returns the XML namespace for SOAP 1.2 elements*/ + QString xmlSoap12Namespace()const{return m_xmlSoap12NS;} + /**returns the XML namespace for Schema itself*/ + QString xmlSchemaNamespace()const{return m_xmlSchemaNS;} + /**returns the XML namespace for XML base elements*/ + QString xmlXmlNamespace()const{return m_xmlXmlNS;} + + /**describes the way message are encoded in transport*/ + enum MessageEncoding{ + WobEncoding=0, + Soap12Encoding=1, + SoapEncoding=1 + }; + /**returns the message encoding mode*/ + MessageEncoding messageEncoding()const{return m_encmode;} /**returns whether a table exists*/ bool hasTable(QString)const; @@ -136,9 +154,11 @@ class WocProcessor:public QObject private: QString m_baseDir,m_wobDir,m_verComm,m_verNeedComm,m_verHR,m_projname; QString m_svnTarget,m_svnRev,m_svnExe,m_svnRoot,m_svnUrl; - QString m_dbInst,m_dbSchema,m_dbVer,m_xmlNS; + QString m_dbInst,m_dbSchema,m_dbVer; + QString m_xmlNS,m_xmlPackNS,m_xmlSoap12NS,m_xmlSchemaNS,m_xmlXmlNS; QStringList m_docstrings; bool m_error,m_dbUpd; + MessageEncoding m_encmode; QList m_tables; QList m_classes; @@ -148,6 +168,9 @@ class WocProcessor:public QObject /**helper: calls SVN and parses its output*/ void callSvn(); + + /**helper: looks up some schema files and finds the corresponding namespaces*/ + void parseNamespaces(); }; diff --git a/woc/soap/schema.xsd b/woc/soap/schema.xsd new file mode 100644 index 0000000..2e9a272 --- /dev/null +++ b/woc/soap/schema.xsd @@ -0,0 +1,2534 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]> + + + + Part 1 version: Id: structures.xsd,v 1.2 2004/01/15 11:34:25 ht Exp + Part 2 version: Id: datatypes.xsd,v 1.3 2004/01/23 18:11:13 ht Exp + + + + + + The schema corresponding to this document is normative, + with respect to the syntactic constraints it expresses in the + XML Schema language. The documentation (within <documentation> elements) + below, is not normative, but rather highlights important aspects of + the W3C Recommendation of which this is a part + + + + + The simpleType element and all of its members are defined + towards the end of this schema document + + + + + + Get access to the xml: attribute groups for xml:lang + as declared on 'schema' and 'documentation' below + + + + + + + + This type is extended by almost all schema types + to allow attributes from other namespaces to be + added to user schemas. + + + + + + + + + + + + + This type is extended by all types which allow annotation + other than <schema> itself + + + + + + + + + + + + + + + + This group is for the + elements which occur freely at the top level of schemas. + All of their types are based on the "annotated" type by extension. + + + + + + + + + + + + + This group is for the + elements which can self-redefine (see <redefine> below). + + + + + + + + + + + + + A utility type, not for public use + + + + + + + + + + + A utility type, not for public use + + + + + + + + + + + A utility type, not for public use + + #all or (possibly empty) subset of {extension, restriction} + + + + + + + + + + + + + + + + + A utility type, not for public use + + + + + + + + + + + + + A utility type, not for public use + + #all or (possibly empty) subset of {extension, restriction, list, union} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + for maxOccurs + + + + + + + + + + + + for all particles + + + + + + + for element, group and attributeGroup, + which both define and reference + + + + + + + + 'complexType' uses this + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This branch is short for + <complexContent> + <restriction base="xs:anyType"> + ... + </restriction> + </complexContent> + + + + + + + + + + + + + + + Will be restricted to required or forbidden + + + + + + Not allowed if simpleContent child is chosen. + May be overriden by setting on complexContent child. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This choice is added simply to + make this a valid restriction per the REC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Overrides any setting on complexType parent. + + + + + + + + + + + + + + + This choice is added simply to + make this a valid restriction per the REC + + + + + + + + + + + + + + + + + No typeDefParticle group reference + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A utility type, not for public use + + #all or (possibly empty) subset of {substitution, extension, + restriction} + + + + + + + + + + + + + + + + + + + + + + + + + The element element can be used either + at the top level to define an element-type binding globally, + or within a content model to either reference a globally-defined + element or type or declare an element-type binding locally. + The ref form is not allowed at the top level. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + group type for explicit groups, named top-level groups and + group references + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + group type for the three kinds of group + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This choice with min/max is here to + avoid a pblm with the Elt:All/Choice/Seq + Particle derivation constraint + + + + + + + + + + restricted max/min + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Only elements allowed inside + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple type for the value of the 'namespace' attr of + 'any' and 'anyAttribute' + + + + Value is + ##any - - any non-conflicting WFXML/attribute at all + + ##other - - any non-conflicting WFXML/attribute from + namespace other than targetNS + + ##local - - any unqualified non-conflicting WFXML/attribute + + one or - - any non-conflicting WFXML/attribute from + more URI the listed namespaces + references + (space separated) + + ##targetNamespace or ##local may appear in the above list, to + refer to the targetNamespace of the enclosing + schema or an absent targetNamespace respectively + + + + + + A utility type, not for public use + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A subset of XPath expressions for use +in selectors + A utility type, not for public +use + + + + The following pattern is intended to allow XPath + expressions per the following EBNF: + Selector ::= Path ( '|' Path )* + Path ::= ('.//')? Step ( '/' Step )* + Step ::= '.' | NameTest + NameTest ::= QName | '*' | NCName ':' '*' + child:: is also allowed + + + + + + + + + + + + + + + + + + + + + + + A subset of XPath expressions for use +in fields + A utility type, not for public +use + + + + The following pattern is intended to allow XPath + expressions per the same EBNF as for selector, + with the following change: + Path ::= ('.//')? ( Step '/' )* ( Step | '@' NameTest ) + + + + + + + + + + + + + + + + + + + + + + + + + + + The three kinds of identity constraints, all with + type of or derived from 'keybase'. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A utility type, not for public use + + A public identifier, per ISO 8879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + notations for use within XML Schema schemas + + + + + + + + + Not the real urType, but as close an approximation as we can + get in the XML representation + + + + + + + + + + First the built-in primitive datatypes. These definitions are for + information only, the real built-in definitions are magic. + + + + For each built-in datatype in this schema (both primitive and + derived) can be uniquely addressed via a URI constructed + as follows: + 1) the base URI is the URI of the XML Schema namespace + 2) the fragment identifier is the name of the datatype + + For example, to address the int datatype, the URI is: + + http://www.w3.org/2001/XMLSchema#int + + Additionally, each facet definition element can be uniquely + addressed via a URI constructed as follows: + 1) the base URI is the URI of the XML Schema namespace + 2) the fragment identifier is the name of the facet + + For example, to address the maxInclusive facet, the URI is: + + http://www.w3.org/2001/XMLSchema#maxInclusive + + Additionally, each facet usage in a built-in datatype definition + can be uniquely addressed via a URI constructed as follows: + 1) the base URI is the URI of the XML Schema namespace + 2) the fragment identifier is the name of the datatype, followed + by a period (".") followed by the name of the facet + + For example, to address the usage of the maxInclusive facet in + the definition of int, the URI is: + + http://www.w3.org/2001/XMLSchema#int.maxInclusive + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NOTATION cannot be used directly in a schema; rather a type + must be derived from it by specifying at least one enumeration + facet whose value is the name of a NOTATION declared in the + schema. + + + + + + + + + + Now the derived primitive types + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + pattern specifies the content of section 2.12 of XML 1.0e2 + and RFC 3066 (Revised version of RFC 1766). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + pattern matches production 7 from the XML spec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + pattern matches production 5 from the XML spec + + + + + + + + + + + + + + + pattern matches production 4 from the Namespaces in XML spec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A utility type, not for public use + + + + + + + + + + + + + + + + + + + + + + #all or (possibly empty) subset of {restriction, union, list} + + + A utility type, not for public use + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Can be restricted to required or forbidden + + + + + + + + + + + + + + + + + + Required at the top level + + + + + + + + + + + + + + + + + + + Forbidden when nested + + + + + + + + + + + + + + + + + + + We should use a substitution group for facets, but + that's ruled out because it would allow users to + add their own, which we're not ready for yet. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + base attribute and simpleType child are mutually + exclusive, but one or other is required + + + + + + + + + + + + + + + + itemType attribute and simpleType child are mutually + exclusive, but one or other is required + + + + + + + + + + + + + + + + + + memberTypes attribute must be non-empty or there must be + at least one simpleType child + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/woc/soap/schemafiles.qrc b/woc/soap/schemafiles.qrc new file mode 100644 index 0000000..93bcd8f --- /dev/null +++ b/woc/soap/schemafiles.qrc @@ -0,0 +1,9 @@ + + + + soap12.xsd + xml.xsd + wob-base.xsd + schema.xsd + + diff --git a/woc/soap/soap.pri b/woc/soap/soap.pri new file mode 100644 index 0000000..09ec496 --- /dev/null +++ b/woc/soap/soap.pri @@ -0,0 +1 @@ +RESOURCES += soap/schemafiles.qrc \ No newline at end of file diff --git a/woc/soap/soap12.xsd b/woc/soap/soap12.xsd new file mode 100644 index 0000000..85a6d8e --- /dev/null +++ b/woc/soap/soap12.xsd @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + Elements replacing the wildcard MUST be namespace qualified, but can be in the targetNamespace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Fault reporting structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/woc/soap/wob-base.xsd b/woc/soap/wob-base.xsd new file mode 100644 index 0000000..95cc574 --- /dev/null +++ b/woc/soap/wob-base.xsd @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/woc/soap/xml.xsd b/woc/soap/xml.xsd new file mode 100644 index 0000000..aea7d0d --- /dev/null +++ b/woc/soap/xml.xsd @@ -0,0 +1,287 @@ + + + + + + +
+

About the XML namespace

+ +
+

+ This schema document describes the XML namespace, in a form + suitable for import by other schema documents. +

+

+ See + http://www.w3.org/XML/1998/namespace.html and + + http://www.w3.org/TR/REC-xml for information + about this namespace. +

+

+ Note that local names in this namespace are intended to be + defined only by the World Wide Web Consortium or its subgroups. + The names currently defined in this namespace are listed below. + They should not be used with conflicting semantics by any Working + Group, specification, or document instance. +

+

+ See further below in this document for more information about how to refer to this schema document from your own + XSD schema documents and about the + namespace-versioning policy governing this schema document. +

+
+
+
+
+ + + + +
+ +

lang (as an attribute name)

+

+ denotes an attribute whose value + is a language code for the natural language of the content of + any element; its value is inherited. This name is reserved + by virtue of its definition in the XML specification.

+ +
+
+

Notes

+

+ Attempting to install the relevant ISO 2- and 3-letter + codes as the enumerated possible values is probably never + going to be a realistic possibility. +

+

+ See BCP 47 at + http://www.rfc-editor.org/rfc/bcp/bcp47.txt + and the IANA language subtag registry at + + http://www.iana.org/assignments/language-subtag-registry + for further information. +

+

+ The union allows for the 'un-declaration' of xml:lang with + the empty string. +

+
+
+
+ + + + + + + + + +
+ + + + +
+ +

space (as an attribute name)

+

+ denotes an attribute whose + value is a keyword indicating what whitespace processing + discipline is intended for the content of the element; its + value is inherited. This name is reserved by virtue of its + definition in the XML specification.

+ +
+
+
+ + + + + + +
+ + + +
+ +

base (as an attribute name)

+

+ denotes an attribute whose value + provides a URI to be used as the base for interpreting any + relative URIs in the scope of the element on which it + appears; its value is inherited. This name is reserved + by virtue of its definition in the XML Base specification.

+ +

+ See http://www.w3.org/TR/xmlbase/ + for information about this attribute. +

+
+
+
+
+ + + + +
+ +

id (as an attribute name)

+

+ denotes an attribute whose value + should be interpreted as if declared to be of type ID. + This name is reserved by virtue of its definition in the + xml:id specification.

+ +

+ See http://www.w3.org/TR/xml-id/ + for information about this attribute. +

+
+
+
+
+ + + + + + + + + + +
+ +

Father (in any context at all)

+ +
+

+ denotes Jon Bosak, the chair of + the original XML Working Group. This name is reserved by + the following decision of the W3C XML Plenary and + XML Coordination groups: +

+
+

+ In appreciation for his vision, leadership and + dedication the W3C XML Plenary on this 10th day of + February, 2000, reserves for Jon Bosak in perpetuity + the XML name "xml:Father". +

+
+
+
+
+
+ + + +
+

About this schema document

+ +
+

+ This schema defines attributes and an attribute group suitable + for use by schemas wishing to allow xml:base, + xml:lang, xml:space or + xml:id attributes on elements they define. +

+

+ To enable this, such a schema must import this schema for + the XML namespace, e.g. as follows: +

+
+          <schema . . .>
+           . . .
+           <import namespace="http://www.w3.org/XML/1998/namespace"
+                      schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+     
+

+ or +

+
+           <import namespace="http://www.w3.org/XML/1998/namespace"
+                      schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
+     
+

+ Subsequently, qualified reference to any of the attributes or the + group defined below will have the desired effect, e.g. +

+
+          <type . . .>
+           . . .
+           <attributeGroup ref="xml:specialAttrs"/>
+     
+

+ will define a type which will schema-validate an instance element + with any of those attributes. +

+
+
+
+
+ + + +
+

Versioning policy for this schema document

+
+

+ In keeping with the XML Schema WG's standard versioning + policy, this schema document will persist at + + http://www.w3.org/2009/01/xml.xsd. +

+

+ At the date of issue it can also be found at + + http://www.w3.org/2001/xml.xsd. +

+

+ The schema document at that URI may however change in the future, + in order to remain compatible with the latest version of XML + Schema itself, or with the XML namespace itself. In other words, + if the XML Schema or XML namespaces change, the version of this + document at + http://www.w3.org/2001/xml.xsd + + will change accordingly; the version at + + http://www.w3.org/2009/01/xml.xsd + + will not change. +

+

+ Previous dated (and unchanging) versions of this schema + document are at: +

+ +
+
+
+
+ +
+ diff --git a/woc/woc.pro b/woc/woc.pro index ff1a5f9..39ceeb8 100644 --- a/woc/woc.pro +++ b/woc/woc.pro @@ -24,6 +24,7 @@ HEADERS+= \ include(proc/proc.pri) include(php/php.pri) include(qt/qt.pri) +include(soap/soap.pri) #make sure dependencies are found DEPENDPATH += $$INCLUDEPATH -- 1.7.2.5