From ba5f66777eecd392f6f2b5c7460b7c53bf6ad51c Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Wed, 28 Sep 2005 11:24:18 +0000 Subject: [PATCH] Fixed bug #34453 (parsing http://www.w3.org/2001/xml.xsd exception) --- NEWS | 1 + ext/soap/php_schema.c | 4 - ext/soap/tests/bugs/bug34453.phpt | 41 +++++++++ ext/soap/tests/bugs/bug34453.wsdl | 42 +++++++++ ext/soap/tests/bugs/xml2.xsd | 146 ++++++++++++++++++++++++++++++ 5 files changed, 230 insertions(+), 4 deletions(-) create mode 100755 ext/soap/tests/bugs/bug34453.phpt create mode 100755 ext/soap/tests/bugs/bug34453.wsdl create mode 100755 ext/soap/tests/bugs/xml2.xsd diff --git a/NEWS b/NEWS index e916ebd30a3..7a055f9ce24 100644 --- a/NEWS +++ b/NEWS @@ -49,6 +49,7 @@ PHP NEWS with empty names). (Tony) - Fixed bug #34478 (Incorrect parsing of url's fragment (#...)). (Dmitry) - Fixed bug #34456 (Possible crash inside pspell extension). (Nuno) +- Fixed bug #34453 (parsing http://www.w3.org/2001/xml.xsd exception). (Dmitry) - Fixed bug #34450 (Segfault when calling mysqli_close() in destructor). (Tony) - Fixed bug #34449 (ext/soap: XSD_ANYXML functionality not exposed). (Dmitry) - Fixed bug #34420 (Possible crash inside curl_multi_remove_handle()). (Ilia) diff --git a/ext/soap/php_schema.c b/ext/soap/php_schema.c index 2446b6b67fa..d6183ffc939 100644 --- a/ext/soap/php_schema.c +++ b/ext/soap/php_schema.c @@ -534,10 +534,6 @@ static int schema_union(sdlPtr sdl, xmlAttrPtr tns, xmlNodePtr unionType, sdlTyp if (node_is_equal(trav,"simpleType")) { sdlTypePtr newType, *tmp; - if (memberTypes != NULL) { - soap_error0(E_ERROR, "Parsing Schema: union has both 'memberTypes' attribute and subtypes"); - } - newType = emalloc(sizeof(sdlType)); memset(newType, 0, sizeof(sdlType)); diff --git a/ext/soap/tests/bugs/bug34453.phpt b/ext/soap/tests/bugs/bug34453.phpt new file mode 100755 index 00000000000..7b6bba02530 --- /dev/null +++ b/ext/soap/tests/bugs/bug34453.phpt @@ -0,0 +1,41 @@ +--TEST-- +Bug #29839 incorrect convert (xml:lang to lang) +--SKIPIF-- + +--FILE-- +server = new SoapServer($wsdl, $options); + $this->server->addFunction('EchoString'); + } + + function __doRequest($request, $location, $action, $version) { + ob_start(); + $this->server->handle($request); + $response = ob_get_contents(); + ob_end_clean(); + return $response; + } + +} + +$client = new LocalSoapClient(dirname(__FILE__)."/bug34453.wsdl", array("trace"=>1)); +$client->EchoString(array("value"=>"hello","lang"=>"en")); +echo $client->__getLastRequest(); +echo $client->__getLastResponse(); +echo "ok\n"; +?> +--EXPECT-- + +hello + +hello +ok \ No newline at end of file diff --git a/ext/soap/tests/bugs/bug34453.wsdl b/ext/soap/tests/bugs/bug34453.wsdl new file mode 100755 index 00000000000..205e1c95b5b --- /dev/null +++ b/ext/soap/tests/bugs/bug34453.wsdl @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ext/soap/tests/bugs/xml2.xsd b/ext/soap/tests/bugs/xml2.xsd new file mode 100755 index 00000000000..a8e2185f1d3 --- /dev/null +++ b/ext/soap/tests/bugs/xml2.xsd @@ -0,0 +1,146 @@ + + + + + + See http://www.w3.org/XML/1998/namespace.html and + http://www.w3.org/TR/REC-xml for information about this namespace. + + This schema document describes the XML namespace, in a form + suitable for import by other schema documents. + + Note that local names in this namespace are intended to be defined + only by the World Wide Web Consortium or its subgroups. The + following names are currently defined in this namespace and should + not be used with conflicting semantics by any Working Group, + specification, or document instance: + + 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. + + id (as an attribute name): denotes an attribute whose value + should be interpreted as if declared to be of type ID. + The xml:id specification is not yet a W3C Recommendation, + but this attribute is included here to facilitate experimentation + with the mechanisms it proposes. Note that it is _not_ included + in the specialAttrs attribute group. + + 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. + + 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. + + 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 + + + + + This schema defines attributes and an attribute group + suitable for use by + schemas wishing to allow xml:base, xml:lang or xml:space 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/03/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 + + + + In keeping with the XML Schema WG's standard versioning + policy, this schema document will persist at + http://www.w3.org/2005/08/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/2005/08/xml.xsd will not change. + + + + + + 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 + RFC 3066 at http://www.ietf.org/rfc/rfc3066.txt and the IANA registry + at http://www.iana.org/assignments/lang-tag-apps.htm for + further information. + + The union allows for the 'un-declaration' of xml:lang with + the empty string. + + + + + + + + + + + + + + + + + + + + + + + + See http://www.w3.org/TR/xmlbase/ for + information about this attribute. + + + + + + See http://www.w3.org/TR/xml-id/ for + information about this attribute. + + + + + + + + + +