@@ -138,93 +138,93 @@ static void set_ns_and_type(xmlNodePtr node, encodeTypePtr type);
138
138
}
139
139
140
140
const encode defaultEncoding [] = {
141
- {{UNKNOWN_TYPE , NULL , NULL , NULL , NULL }, guess_zval_convert , guess_xml_convert },
142
-
143
- {{IS_NULL , "nil" , XSI_NAMESPACE , NULL , NULL }, to_zval_null , to_xml_null },
144
- {{IS_STRING , XSD_STRING_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_string , to_xml_string },
145
- {{IS_LONG , XSD_INT_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_long , to_xml_long },
146
- {{IS_DOUBLE , XSD_FLOAT_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_double , to_xml_double },
147
- {{IS_FALSE , XSD_BOOLEAN_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_bool , to_xml_bool },
148
- {{IS_TRUE , XSD_BOOLEAN_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_bool , to_xml_bool },
149
- {{IS_ARRAY , SOAP_ENC_ARRAY_STRING , SOAP_1_1_ENC_NAMESPACE , NULL , NULL }, to_zval_array , guess_array_map },
150
- {{IS_OBJECT , SOAP_ENC_OBJECT_STRING , SOAP_1_1_ENC_NAMESPACE , NULL , NULL }, to_zval_object , to_xml_object },
151
- {{IS_ARRAY , SOAP_ENC_ARRAY_STRING , SOAP_1_2_ENC_NAMESPACE , NULL , NULL }, to_zval_array , guess_array_map },
152
- {{IS_OBJECT , SOAP_ENC_OBJECT_STRING , SOAP_1_2_ENC_NAMESPACE , NULL , NULL }, to_zval_object , to_xml_object },
153
-
154
- {{XSD_STRING , XSD_STRING_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_string , to_xml_string },
155
- {{XSD_BOOLEAN , XSD_BOOLEAN_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_bool , to_xml_bool },
156
- {{XSD_DECIMAL , XSD_DECIMAL_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_string },
157
- {{XSD_FLOAT , XSD_FLOAT_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_double , to_xml_double },
158
- {{XSD_DOUBLE , XSD_DOUBLE_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_double , to_xml_double },
159
-
160
- {{XSD_DATETIME , XSD_DATETIME_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_datetime },
161
- {{XSD_TIME , XSD_TIME_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_time },
162
- {{XSD_DATE , XSD_DATE_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_date },
163
- {{XSD_GYEARMONTH , XSD_GYEARMONTH_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_gyearmonth },
164
- {{XSD_GYEAR , XSD_GYEAR_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_gyear },
165
- {{XSD_GMONTHDAY , XSD_GMONTHDAY_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_gmonthday },
166
- {{XSD_GDAY , XSD_GDAY_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_gday },
167
- {{XSD_GMONTH , XSD_GMONTH_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_gmonth },
168
- {{XSD_DURATION , XSD_DURATION_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_duration },
169
-
170
- {{XSD_HEXBINARY , XSD_HEXBINARY_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_hexbin , to_xml_hexbin },
171
- {{XSD_BASE64BINARY , XSD_BASE64BINARY_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_base64 , to_xml_base64 },
172
-
173
- {{XSD_LONG , XSD_LONG_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_long , to_xml_long },
174
- {{XSD_INT , XSD_INT_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_long , to_xml_long },
175
- {{XSD_SHORT , XSD_SHORT_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_long , to_xml_long },
176
- {{XSD_BYTE , XSD_BYTE_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_long , to_xml_long },
177
- {{XSD_NONPOSITIVEINTEGER , XSD_NONPOSITIVEINTEGER_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_long , to_xml_long },
178
- {{XSD_POSITIVEINTEGER , XSD_POSITIVEINTEGER_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_long , to_xml_long },
179
- {{XSD_NONNEGATIVEINTEGER , XSD_NONNEGATIVEINTEGER_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_long , to_xml_long },
180
- {{XSD_NEGATIVEINTEGER , XSD_NEGATIVEINTEGER_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_long , to_xml_long },
181
- {{XSD_UNSIGNEDBYTE , XSD_UNSIGNEDBYTE_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_long , to_xml_long },
182
- {{XSD_UNSIGNEDSHORT , XSD_UNSIGNEDSHORT_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_long , to_xml_long },
183
- {{XSD_UNSIGNEDINT , XSD_UNSIGNEDINT_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_long , to_xml_long },
184
- {{XSD_UNSIGNEDLONG , XSD_UNSIGNEDLONG_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_long , to_xml_long },
185
- {{XSD_INTEGER , XSD_INTEGER_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_long , to_xml_long },
186
-
187
- {{XSD_ANYTYPE , XSD_ANYTYPE_STRING , XSD_NAMESPACE , NULL , NULL }, guess_zval_convert , guess_xml_convert },
188
- {{XSD_UR_TYPE , XSD_UR_TYPE_STRING , XSD_NAMESPACE , NULL , NULL }, guess_zval_convert , guess_xml_convert },
189
- {{XSD_ANYURI , XSD_ANYURI_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_string },
190
- {{XSD_QNAME , XSD_QNAME_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_string },
191
- {{XSD_NOTATION , XSD_NOTATION_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_string },
192
- {{XSD_NORMALIZEDSTRING , XSD_NORMALIZEDSTRING_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringr , to_xml_string },
193
- {{XSD_TOKEN , XSD_TOKEN_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_string },
194
- {{XSD_LANGUAGE , XSD_LANGUAGE_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_string },
195
- {{XSD_NMTOKEN , XSD_NMTOKEN_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_string },
196
- {{XSD_NMTOKENS , XSD_NMTOKENS_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_list1 },
197
- {{XSD_NAME , XSD_NAME_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_string },
198
- {{XSD_NCNAME , XSD_NCNAME_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_string },
199
- {{XSD_ID , XSD_ID_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_string },
200
- {{XSD_IDREF , XSD_IDREF_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_string },
201
- {{XSD_IDREFS , XSD_IDREFS_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_list1 },
202
- {{XSD_ENTITY , XSD_ENTITY_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_string },
203
- {{XSD_ENTITIES , XSD_ENTITIES_STRING , XSD_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_list1 },
204
-
205
- {{APACHE_MAP , APACHE_MAP_STRING , APACHE_NAMESPACE , NULL , NULL }, to_zval_map , to_xml_map },
206
-
207
- {{SOAP_ENC_OBJECT , SOAP_ENC_OBJECT_STRING , SOAP_1_1_ENC_NAMESPACE , NULL , NULL }, to_zval_object , to_xml_object },
208
- {{SOAP_ENC_ARRAY , SOAP_ENC_ARRAY_STRING , SOAP_1_1_ENC_NAMESPACE , NULL , NULL }, to_zval_array , to_xml_array },
209
- {{SOAP_ENC_OBJECT , SOAP_ENC_OBJECT_STRING , SOAP_1_2_ENC_NAMESPACE , NULL , NULL }, to_zval_object , to_xml_object },
210
- {{SOAP_ENC_ARRAY , SOAP_ENC_ARRAY_STRING , SOAP_1_2_ENC_NAMESPACE , NULL , NULL }, to_zval_array , to_xml_array },
141
+ {{UNKNOWN_TYPE , NULL , NULL , NULL , NULL , NULL }, guess_zval_convert , guess_xml_convert },
142
+
143
+ {{IS_NULL , "nil" , XSI_NAMESPACE , NULL , NULL , NULL }, to_zval_null , to_xml_null },
144
+ {{IS_STRING , XSD_STRING_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_string , to_xml_string },
145
+ {{IS_LONG , XSD_INT_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_long , to_xml_long },
146
+ {{IS_DOUBLE , XSD_FLOAT_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_double , to_xml_double },
147
+ {{IS_FALSE , XSD_BOOLEAN_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_bool , to_xml_bool },
148
+ {{IS_TRUE , XSD_BOOLEAN_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_bool , to_xml_bool },
149
+ {{IS_ARRAY , SOAP_ENC_ARRAY_STRING , SOAP_1_1_ENC_NAMESPACE , NULL , NULL , NULL }, to_zval_array , guess_array_map },
150
+ {{IS_OBJECT , SOAP_ENC_OBJECT_STRING , SOAP_1_1_ENC_NAMESPACE , NULL , NULL , NULL }, to_zval_object , to_xml_object },
151
+ {{IS_ARRAY , SOAP_ENC_ARRAY_STRING , SOAP_1_2_ENC_NAMESPACE , NULL , NULL , NULL }, to_zval_array , guess_array_map },
152
+ {{IS_OBJECT , SOAP_ENC_OBJECT_STRING , SOAP_1_2_ENC_NAMESPACE , NULL , NULL , NULL }, to_zval_object , to_xml_object },
153
+
154
+ {{XSD_STRING , XSD_STRING_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_string , to_xml_string },
155
+ {{XSD_BOOLEAN , XSD_BOOLEAN_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_bool , to_xml_bool },
156
+ {{XSD_DECIMAL , XSD_DECIMAL_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_string },
157
+ {{XSD_FLOAT , XSD_FLOAT_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_double , to_xml_double },
158
+ {{XSD_DOUBLE , XSD_DOUBLE_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_double , to_xml_double },
159
+
160
+ {{XSD_DATETIME , XSD_DATETIME_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_datetime },
161
+ {{XSD_TIME , XSD_TIME_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_time },
162
+ {{XSD_DATE , XSD_DATE_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_date },
163
+ {{XSD_GYEARMONTH , XSD_GYEARMONTH_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_gyearmonth },
164
+ {{XSD_GYEAR , XSD_GYEAR_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_gyear },
165
+ {{XSD_GMONTHDAY , XSD_GMONTHDAY_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_gmonthday },
166
+ {{XSD_GDAY , XSD_GDAY_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_gday },
167
+ {{XSD_GMONTH , XSD_GMONTH_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_gmonth },
168
+ {{XSD_DURATION , XSD_DURATION_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_duration },
169
+
170
+ {{XSD_HEXBINARY , XSD_HEXBINARY_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_hexbin , to_xml_hexbin },
171
+ {{XSD_BASE64BINARY , XSD_BASE64BINARY_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_base64 , to_xml_base64 },
172
+
173
+ {{XSD_LONG , XSD_LONG_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_long , to_xml_long },
174
+ {{XSD_INT , XSD_INT_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_long , to_xml_long },
175
+ {{XSD_SHORT , XSD_SHORT_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_long , to_xml_long },
176
+ {{XSD_BYTE , XSD_BYTE_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_long , to_xml_long },
177
+ {{XSD_NONPOSITIVEINTEGER , XSD_NONPOSITIVEINTEGER_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_long , to_xml_long },
178
+ {{XSD_POSITIVEINTEGER , XSD_POSITIVEINTEGER_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_long , to_xml_long },
179
+ {{XSD_NONNEGATIVEINTEGER , XSD_NONNEGATIVEINTEGER_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_long , to_xml_long },
180
+ {{XSD_NEGATIVEINTEGER , XSD_NEGATIVEINTEGER_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_long , to_xml_long },
181
+ {{XSD_UNSIGNEDBYTE , XSD_UNSIGNEDBYTE_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_long , to_xml_long },
182
+ {{XSD_UNSIGNEDSHORT , XSD_UNSIGNEDSHORT_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_long , to_xml_long },
183
+ {{XSD_UNSIGNEDINT , XSD_UNSIGNEDINT_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_long , to_xml_long },
184
+ {{XSD_UNSIGNEDLONG , XSD_UNSIGNEDLONG_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_long , to_xml_long },
185
+ {{XSD_INTEGER , XSD_INTEGER_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_long , to_xml_long },
186
+
187
+ {{XSD_ANYTYPE , XSD_ANYTYPE_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, guess_zval_convert , guess_xml_convert },
188
+ {{XSD_UR_TYPE , XSD_UR_TYPE_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, guess_zval_convert , guess_xml_convert },
189
+ {{XSD_ANYURI , XSD_ANYURI_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_string },
190
+ {{XSD_QNAME , XSD_QNAME_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_string },
191
+ {{XSD_NOTATION , XSD_NOTATION_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_string },
192
+ {{XSD_NORMALIZEDSTRING , XSD_NORMALIZEDSTRING_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringr , to_xml_string },
193
+ {{XSD_TOKEN , XSD_TOKEN_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_string },
194
+ {{XSD_LANGUAGE , XSD_LANGUAGE_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_string },
195
+ {{XSD_NMTOKEN , XSD_NMTOKEN_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_string },
196
+ {{XSD_NMTOKENS , XSD_NMTOKENS_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_list1 },
197
+ {{XSD_NAME , XSD_NAME_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_string },
198
+ {{XSD_NCNAME , XSD_NCNAME_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_string },
199
+ {{XSD_ID , XSD_ID_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_string },
200
+ {{XSD_IDREF , XSD_IDREF_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_string },
201
+ {{XSD_IDREFS , XSD_IDREFS_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_list1 },
202
+ {{XSD_ENTITY , XSD_ENTITY_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_string },
203
+ {{XSD_ENTITIES , XSD_ENTITIES_STRING , XSD_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_list1 },
204
+
205
+ {{APACHE_MAP , APACHE_MAP_STRING , APACHE_NAMESPACE , NULL , NULL , NULL }, to_zval_map , to_xml_map },
206
+
207
+ {{SOAP_ENC_OBJECT , SOAP_ENC_OBJECT_STRING , SOAP_1_1_ENC_NAMESPACE , NULL , NULL , NULL }, to_zval_object , to_xml_object },
208
+ {{SOAP_ENC_ARRAY , SOAP_ENC_ARRAY_STRING , SOAP_1_1_ENC_NAMESPACE , NULL , NULL , NULL }, to_zval_array , to_xml_array },
209
+ {{SOAP_ENC_OBJECT , SOAP_ENC_OBJECT_STRING , SOAP_1_2_ENC_NAMESPACE , NULL , NULL , NULL }, to_zval_object , to_xml_object },
210
+ {{SOAP_ENC_ARRAY , SOAP_ENC_ARRAY_STRING , SOAP_1_2_ENC_NAMESPACE , NULL , NULL , NULL }, to_zval_array , to_xml_array },
211
211
212
212
/* support some of the 1999 data types */
213
- {{XSD_STRING , XSD_STRING_STRING , XSD_1999_NAMESPACE , NULL , NULL }, to_zval_string , to_xml_string },
214
- {{XSD_BOOLEAN , XSD_BOOLEAN_STRING , XSD_1999_NAMESPACE , NULL , NULL }, to_zval_bool , to_xml_bool },
215
- {{XSD_DECIMAL , XSD_DECIMAL_STRING , XSD_1999_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_string },
216
- {{XSD_FLOAT , XSD_FLOAT_STRING , XSD_1999_NAMESPACE , NULL , NULL }, to_zval_double , to_xml_double },
217
- {{XSD_DOUBLE , XSD_DOUBLE_STRING , XSD_1999_NAMESPACE , NULL , NULL }, to_zval_double , to_xml_double },
213
+ {{XSD_STRING , XSD_STRING_STRING , XSD_1999_NAMESPACE , NULL , NULL , NULL }, to_zval_string , to_xml_string },
214
+ {{XSD_BOOLEAN , XSD_BOOLEAN_STRING , XSD_1999_NAMESPACE , NULL , NULL , NULL }, to_zval_bool , to_xml_bool },
215
+ {{XSD_DECIMAL , XSD_DECIMAL_STRING , XSD_1999_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_string },
216
+ {{XSD_FLOAT , XSD_FLOAT_STRING , XSD_1999_NAMESPACE , NULL , NULL , NULL }, to_zval_double , to_xml_double },
217
+ {{XSD_DOUBLE , XSD_DOUBLE_STRING , XSD_1999_NAMESPACE , NULL , NULL , NULL }, to_zval_double , to_xml_double },
218
218
219
- {{XSD_LONG , XSD_LONG_STRING , XSD_1999_NAMESPACE , NULL , NULL }, to_zval_long , to_xml_long },
220
- {{XSD_INT , XSD_INT_STRING , XSD_1999_NAMESPACE , NULL , NULL }, to_zval_long , to_xml_long },
221
- {{XSD_SHORT , XSD_SHORT_STRING , XSD_1999_NAMESPACE , NULL , NULL }, to_zval_long , to_xml_long },
222
- {{XSD_BYTE , XSD_BYTE_STRING , XSD_1999_NAMESPACE , NULL , NULL }, to_zval_long , to_xml_long },
223
- {{XSD_1999_TIMEINSTANT , XSD_1999_TIMEINSTANT_STRING , XSD_1999_NAMESPACE , NULL , NULL }, to_zval_stringc , to_xml_string },
219
+ {{XSD_LONG , XSD_LONG_STRING , XSD_1999_NAMESPACE , NULL , NULL , NULL }, to_zval_long , to_xml_long },
220
+ {{XSD_INT , XSD_INT_STRING , XSD_1999_NAMESPACE , NULL , NULL , NULL }, to_zval_long , to_xml_long },
221
+ {{XSD_SHORT , XSD_SHORT_STRING , XSD_1999_NAMESPACE , NULL , NULL , NULL }, to_zval_long , to_xml_long },
222
+ {{XSD_BYTE , XSD_BYTE_STRING , XSD_1999_NAMESPACE , NULL , NULL , NULL }, to_zval_long , to_xml_long },
223
+ {{XSD_1999_TIMEINSTANT , XSD_1999_TIMEINSTANT_STRING , XSD_1999_NAMESPACE , NULL , NULL , NULL }, to_zval_stringc , to_xml_string },
224
224
225
- {{XSD_ANYXML , "<anyXML>" , "<anyXML>" , NULL , NULL }, to_zval_any , to_xml_any },
225
+ {{XSD_ANYXML , "<anyXML>" , "<anyXML>" , NULL , NULL , NULL }, to_zval_any , to_xml_any },
226
226
227
- {{END_KNOWN_TYPES , NULL , NULL , NULL , NULL }, guess_zval_convert , guess_xml_convert }
227
+ {{END_KNOWN_TYPES , NULL , NULL , NULL , NULL , NULL }, guess_zval_convert , guess_xml_convert }
228
228
};
229
229
230
230
int numDefaultEncodings = sizeof (defaultEncoding )/sizeof (encode );
@@ -272,13 +272,10 @@ static encodePtr find_encoder_by_type_name(sdlPtr sdl, const char *type)
272
272
273
273
ZEND_HASH_FOREACH_PTR (sdl -> encoders , enc ) {
274
274
275
- if (type [0 ] == '{' ) {
276
- size_t ns_len = strlen (enc -> details .ns );
277
- if (strncmp (enc -> details .ns , type + 1 , ns_len ) == 0
278
- && type [ns_len + 1 ] == '}'
279
- && strcmp (enc -> details .type_str , type + ns_len + 2 ) == 0 ) {
280
- return enc ;
281
- }
275
+ if (type [0 ] == '{'
276
+ && enc -> details .clark_notation
277
+ && strcmp (ZSTR_VAL (enc -> details .clark_notation ), type ) == 0 ) {
278
+ return enc ;
282
279
} else {
283
280
if (strcmp (enc -> details .type_str , type ) == 0 ) {
284
281
return enc ;
@@ -1394,9 +1391,7 @@ static zval *to_zval_object_ex(zval *ret, encodeTypePtr type, xmlNodePtr data, z
1394
1391
classname = zend_hash_str_find_deref (SOAP_GLOBAL (class_map ), type -> type_str , strlen (type -> type_str ));
1395
1392
if (classname == NULL ){
1396
1393
if (type -> ns ) {
1397
- zend_string * nscat = zend_strpprintf (0 , "{%s}%s" , type -> ns , type -> type_str );
1398
- classname = zend_hash_find_deref (SOAP_GLOBAL (class_map ),nscat );
1399
- zend_string_release_ex (nscat , 0 );
1394
+ classname = zend_hash_find_deref (SOAP_GLOBAL (class_map ),type -> clark_notation );
1400
1395
}
1401
1396
}
1402
1397
if (classname != NULL &&
@@ -3629,6 +3624,9 @@ void delete_encoder(zval *zv)
3629
3624
if (t -> details .map ) {
3630
3625
delete_mapping (t -> details .map );
3631
3626
}
3627
+ if (t -> details .clark_notation ) {
3628
+ zend_string_release_ex (t -> details .clark_notation , 0 );
3629
+ }
3632
3630
efree (t );
3633
3631
}
3634
3632
@@ -3641,6 +3639,9 @@ void delete_encoder_persistent(zval *zv)
3641
3639
if (t -> details .type_str ) {
3642
3640
free (t -> details .type_str );
3643
3641
}
3642
+ if (t -> details .clark_notation ) {
3643
+ zend_string_release_ex (t -> details .clark_notation , 0 );
3644
+ }
3644
3645
/* we should never have mapping in persistent encoder */
3645
3646
assert (t -> details .map == NULL );
3646
3647
free (t );
0 commit comments