OLD | NEW |
1 /* | 1 /* |
2 * schemastypes.c : implementation of the XML Schema Datatypes | 2 * schemastypes.c : implementation of the XML Schema Datatypes |
3 * definition and validity checking | 3 * definition and validity checking |
4 * | 4 * |
5 * See Copyright for the status of this software. | 5 * See Copyright for the status of this software. |
6 * | 6 * |
7 * Daniel Veillard <veillard@redhat.com> | 7 * Daniel Veillard <veillard@redhat.com> |
8 */ | 8 */ |
9 | 9 |
10 #define IN_LIBXML | 10 #define IN_LIBXML |
(...skipping 2881 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2892 if (uri != NULL) | 2892 if (uri != NULL) |
2893 xmlFree(uri); | 2893 xmlFree(uri); |
2894 goto error; | 2894 goto error; |
2895 } | 2895 } |
2896 } | 2896 } |
2897 goto done; | 2897 goto done; |
2898 } | 2898 } |
2899 case XML_SCHEMAS_ANYURI:{ | 2899 case XML_SCHEMAS_ANYURI:{ |
2900 if (*value != 0) { | 2900 if (*value != 0) { |
2901 xmlURIPtr uri; | 2901 xmlURIPtr uri; |
| 2902 xmlChar *tmpval, *cur; |
2902 if (normOnTheFly) { | 2903 if (normOnTheFly) { |
2903 norm = xmlSchemaCollapseString(value); | 2904 norm = xmlSchemaCollapseString(value); |
2904 if (norm != NULL) | 2905 if (norm != NULL) |
2905 value = norm; | 2906 value = norm; |
2906 } | 2907 } |
2907 uri = xmlParseURI((const char *) value); | 2908 » » tmpval = xmlStrdup(value); |
| 2909 » » for (cur = tmpval; *cur; ++cur) { |
| 2910 » » » if (*cur < 32 || *cur >= 127 || *cur == ' ' || |
| 2911 » » » *cur == '<' || *cur == '>' || *cur == '"' || |
| 2912 » » » *cur == '{' || *cur == '}' || *cur == '|' || |
| 2913 » » » *cur == '\\' || *cur == '^' || *cur == '`' || |
| 2914 » » » *cur == '\'') |
| 2915 » » » *cur = '_'; |
| 2916 » » } |
| 2917 uri = xmlParseURI((const char *) tmpval); |
| 2918 » » xmlFree(tmpval); |
2908 if (uri == NULL) | 2919 if (uri == NULL) |
2909 goto return1; | 2920 goto return1; |
2910 xmlFreeURI(uri); | 2921 xmlFreeURI(uri); |
2911 } | 2922 } |
2912 | 2923 |
2913 if (val != NULL) { | 2924 if (val != NULL) { |
2914 v = xmlSchemaNewValue(XML_SCHEMAS_ANYURI); | 2925 v = xmlSchemaNewValue(XML_SCHEMAS_ANYURI); |
2915 if (v == NULL) | 2926 if (v == NULL) |
2916 goto error; | 2927 goto error; |
2917 v->value.str = xmlStrdup(value); | 2928 v->value.str = xmlStrdup(value); |
(...skipping 3189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6107 xmlSchemaGetValType(xmlSchemaValPtr val) | 6118 xmlSchemaGetValType(xmlSchemaValPtr val) |
6108 { | 6119 { |
6109 if (val == NULL) | 6120 if (val == NULL) |
6110 return(XML_SCHEMAS_UNKNOWN); | 6121 return(XML_SCHEMAS_UNKNOWN); |
6111 return (val->type); | 6122 return (val->type); |
6112 } | 6123 } |
6113 | 6124 |
6114 #define bottom_xmlschemastypes | 6125 #define bottom_xmlschemastypes |
6115 #include "elfgcchack.h" | 6126 #include "elfgcchack.h" |
6116 #endif /* LIBXML_SCHEMAS_ENABLED */ | 6127 #endif /* LIBXML_SCHEMAS_ENABLED */ |
OLD | NEW |