diff -r b0560adec4b7 -r 5024c19ca8f0 xmlclass/xsdschema.py --- a/xmlclass/xsdschema.py Thu Oct 11 10:25:19 2018 +0300 +++ b/xmlclass/xsdschema.py Thu Oct 11 12:00:40 2018 +0300 @@ -28,8 +28,10 @@ import os import re import datetime +from types import FunctionType from xml.dom import minidom -from types import * +from six import string_types +from past.builtins import long from xmlclass.xmlclass import * @@ -61,7 +63,7 @@ if name is not None: ind1, _ind2 = getIndent(indent, name) text += ind1 + "<%s>" % name - if isinstance(value, IntType): + if isinstance(value, int): text += str(value) elif value in extra_values or value % 1 != 0: text += float_format(value) @@ -167,7 +169,7 @@ if typeinfos["type"] in ["restriction", "extension"]: # Search for base type definition - if isinstance(typeinfos["base"], (StringType, UnicodeType)): + if isinstance(typeinfos["base"], string_types): basetypeinfos = factory.FindSchemaElement(typeinfos["base"], SIMPLETYPE) if basetypeinfos is None: raise "\"%s\" isn't defined!" % typeinfos["base"] @@ -391,7 +393,7 @@ elif typeinfos["type"] == "list": # Search for item type definition - if isinstance(typeinfos["itemType"], (StringType, UnicodeType)): + if isinstance(typeinfos["itemType"], string_types): itemtypeinfos = factory.FindSchemaElement(typeinfos["itemType"], SIMPLETYPE) if itemtypeinfos is None: raise "\"%s\" isn't defined!" % typeinfos["itemType"] @@ -437,7 +439,7 @@ # Search for member types definition membertypesinfos = [] for membertype in typeinfos["memberTypes"]: - if isinstance(membertype, (StringType, UnicodeType)): + if isinstance(membertype, string_types): infos = factory.FindSchemaElement(membertype, SIMPLETYPE) if infos is None: raise ValueError("\"%s\" isn't defined!" % membertype) @@ -478,7 +480,7 @@ SimpleTypeInitialValue = membertypesinfos[0]["initial"] def GenerateSimpleTypeFunction(value): - if isinstance(value, BooleanType): + if isinstance(value, bool): return {True: "true", False: "false"}[value] else: return str(value) @@ -511,7 +513,7 @@ attrnames = {} if base is not None: basetypeinfos = factory.FindSchemaElement(base) - if not isinstance(basetypeinfos, (UnicodeType, StringType)) and basetypeinfos["type"] == COMPLEXTYPE: + if not isinstance(basetypeinfos, string_types) and basetypeinfos["type"] == COMPLEXTYPE: attrnames = dict(map(lambda x: (x["name"], True), basetypeinfos["attributes"])) for element in elements: @@ -812,7 +814,7 @@ raise ValueError("Only group composed of \"choice\" can be referenced in \"choice\" element!") choices_tmp = [] for choice in elmtgroup["choices"]: - if not isinstance(choice["elmt_type"], (UnicodeType, StringType)) and choice["elmt_type"]["type"] == COMPLEXTYPE: + if not isinstance(choice["elmt_type"], string_types) and choice["elmt_type"]["type"] == COMPLEXTYPE: elmt_type = "%s_%s" % (elmtgroup["name"], choice["name"]) if factory.TargetNamespace is not None: elmt_type = "%s:%s" % (factory.TargetNamespace, elmt_type) @@ -846,7 +848,7 @@ raise ValueError("Only group composed of \"sequence\" can be referenced in \"sequence\" element!") elements_tmp = [] for element in elmtgroup["elements"]: - if not isinstance(element["elmt_type"], (UnicodeType, StringType)) and element["elmt_type"]["type"] == COMPLEXTYPE: + if not isinstance(element["elmt_type"], string_types) and element["elmt_type"]["type"] == COMPLEXTYPE: elmt_type = "%s_%s" % (elmtgroup["name"], element["name"]) if factory.TargetNamespace is not None: elmt_type = "%s:%s" % (factory.TargetNamespace, elmt_type) @@ -982,16 +984,16 @@ def CompareSchema(schema, reference): - if isinstance(schema, ListType): - if not isinstance(reference, ListType) or len(schema) != len(reference): + if isinstance(schema, list): + if not isinstance(reference, list) or len(schema) != len(reference): return False for i, value in enumerate(schema): result = CompareSchema(value, reference[i]) if not result: return result return True - elif isinstance(schema, DictType): - if not isinstance(reference, DictType) or len(schema) != len(reference): + elif isinstance(schema, dict): + if not isinstance(reference, dict) or len(schema) != len(reference): return False for name, value in schema.items(): ref_value = reference.get(name, None) @@ -2212,8 +2214,7 @@ "facets": STRING_FACETS, "generate": GenerateSimpleTypeXMLText(lambda x: x), "initial": lambda: "", - "check": lambda x: isinstance(x, (StringType, UnicodeType)) - }, + "check": lambda x: isinstance(x, string_types)}, "normalizedString": { "type": SIMPLETYPE, @@ -2222,7 +2223,7 @@ "facets": STRING_FACETS, "generate": GenerateSimpleTypeXMLText(lambda x: x), "initial": lambda: "", - "check": lambda x: isinstance(x, (StringType, UnicodeType)) + "check": lambda x: isinstance(x, string_types) }, "token": { @@ -2232,7 +2233,7 @@ "facets": STRING_FACETS, "generate": GenerateSimpleTypeXMLText(lambda x: x), "initial": lambda: "", - "check": lambda x: isinstance(x, (StringType, UnicodeType)) + "check": lambda x: isinstance(x, string_types) }, "base64Binary": { @@ -2242,7 +2243,7 @@ "facets": STRING_FACETS, "generate": GenerateSimpleTypeXMLText(str), "initial": lambda: 0, - "check": lambda x: isinstance(x, (IntType, LongType)) + "check": lambda x: isinstance(x, (int, long)) }, "hexBinary": { @@ -2252,7 +2253,7 @@ "facets": STRING_FACETS, "generate": GenerateSimpleTypeXMLText(lambda x: ("%."+str(int(round(len("%X" % x)/2.)*2))+"X") % x), "initial": lambda: 0, - "check": lambda x: isinstance(x, (IntType, LongType)) + "check": lambda x: isinstance(x, (int, long)) }, "integer": { @@ -2262,7 +2263,7 @@ "facets": DECIMAL_FACETS, "generate": GenerateSimpleTypeXMLText(str), "initial": lambda: 0, - "check": lambda x: isinstance(x, IntType) + "check": lambda x: isinstance(x, int) }, "positiveInteger": { @@ -2272,7 +2273,7 @@ "facets": DECIMAL_FACETS, "generate": GenerateSimpleTypeXMLText(str), "initial": lambda: 1, - "check": lambda x: isinstance(x, IntType) + "check": lambda x: isinstance(x, int) }, "negativeInteger": { @@ -2282,7 +2283,7 @@ "facets": DECIMAL_FACETS, "generate": GenerateSimpleTypeXMLText(str), "initial": lambda: -1, - "check": lambda x: isinstance(x, IntType) + "check": lambda x: isinstance(x, int) }, "nonNegativeInteger": { @@ -2292,7 +2293,7 @@ "facets": DECIMAL_FACETS, "generate": GenerateSimpleTypeXMLText(str), "initial": lambda: 0, - "check": lambda x: isinstance(x, IntType) + "check": lambda x: isinstance(x, int) }, "nonPositiveInteger": { @@ -2302,7 +2303,7 @@ "facets": DECIMAL_FACETS, "generate": GenerateSimpleTypeXMLText(str), "initial": lambda: 0, - "check": lambda x: isinstance(x, IntType) + "check": lambda x: isinstance(x, int) }, "long": { @@ -2312,7 +2313,7 @@ "facets": DECIMAL_FACETS, "generate": GenerateSimpleTypeXMLText(str), "initial": lambda: 0, - "check": lambda x: isinstance(x, IntType) + "check": lambda x: isinstance(x, int) }, "unsignedLong": { @@ -2322,7 +2323,7 @@ "facets": DECIMAL_FACETS, "generate": GenerateSimpleTypeXMLText(str), "initial": lambda: 0, - "check": lambda x: isinstance(x, IntType) + "check": lambda x: isinstance(x, int) }, "int": { @@ -2332,7 +2333,7 @@ "facets": DECIMAL_FACETS, "generate": GenerateSimpleTypeXMLText(str), "initial": lambda: 0, - "check": lambda x: isinstance(x, IntType) + "check": lambda x: isinstance(x, int) }, "unsignedInt": { @@ -2342,7 +2343,7 @@ "facets": DECIMAL_FACETS, "generate": GenerateSimpleTypeXMLText(str), "initial": lambda: 0, - "check": lambda x: isinstance(x, IntType) + "check": lambda x: isinstance(x, int) }, "short": { @@ -2352,7 +2353,7 @@ "facets": DECIMAL_FACETS, "generate": GenerateSimpleTypeXMLText(str), "initial": lambda: 0, - "check": lambda x: isinstance(x, IntType) + "check": lambda x: isinstance(x, int) }, "unsignedShort": { @@ -2362,7 +2363,7 @@ "facets": DECIMAL_FACETS, "generate": GenerateSimpleTypeXMLText(str), "initial": lambda: 0, - "check": lambda x: isinstance(x, IntType) + "check": lambda x: isinstance(x, int) }, "byte": { @@ -2372,7 +2373,7 @@ "facets": DECIMAL_FACETS, "generate": GenerateSimpleTypeXMLText(str), "initial": lambda: 0, - "check": lambda x: isinstance(x, IntType) + "check": lambda x: isinstance(x, int) }, "unsignedByte": { @@ -2382,7 +2383,7 @@ "facets": DECIMAL_FACETS, "generate": GenerateSimpleTypeXMLText(str), "initial": lambda: 0, - "check": lambda x: isinstance(x, IntType) + "check": lambda x: isinstance(x, int) }, "decimal": { @@ -2392,7 +2393,7 @@ "facets": DECIMAL_FACETS, "generate": GenerateFloatXMLText(decimal=3), "initial": lambda: 0., - "check": lambda x: isinstance(x, (IntType, FloatType)) + "check": lambda x: isinstance(x, (int, float)) }, "float": { @@ -2402,7 +2403,7 @@ "facets": NUMBER_FACETS, "generate": GenerateFloatXMLText(["INF", "-INF", "NaN"]), "initial": lambda: 0., - "check": lambda x: {"INF": True, "-INF": True, "NaN": True}.get(x, isinstance(x, (IntType, FloatType))) + "check": lambda x: {"INF": True, "-INF": True, "NaN": True}.get(x, isinstance(x, (int, float))) }, "double": { @@ -2412,7 +2413,7 @@ "facets": NUMBER_FACETS, "generate": GenerateFloatXMLText(["INF", "-INF", "NaN"]), "initial": lambda: 0., - "check": lambda x: {"INF": True, "-INF": True, "NaN": True}.get(x, isinstance(x, (IntType, FloatType))) + "check": lambda x: {"INF": True, "-INF": True, "NaN": True}.get(x, isinstance(x, (int, float))) }, "boolean": { @@ -2422,7 +2423,7 @@ "facets": GenerateDictFacets(["pattern", "whiteSpace"]), "generate": GenerateSimpleTypeXMLText(lambda x: {True: "true", False: "false"}[x]), "initial": lambda: False, - "check": lambda x: isinstance(x, BooleanType) + "check": lambda x: isinstance(x, bool) }, "duration": { @@ -2432,7 +2433,7 @@ "facets": NUMBER_FACETS, "generate": GenerateSimpleTypeXMLText(str), "initial": lambda: "", - "check": lambda x: isinstance(x, (StringType, UnicodeType)) + "check": lambda x: isinstance(x, string_types) }, "dateTime": { @@ -2472,7 +2473,7 @@ "facets": NUMBER_FACETS, "generate": GenerateSimpleTypeXMLText(str), "initial": lambda: "", - "check": lambda x: isinstance(x, (StringType, UnicodeType)) + "check": lambda x: isinstance(x, string_types) }, "gYearMonth": { @@ -2482,7 +2483,7 @@ "facets": NUMBER_FACETS, "generate": GenerateSimpleTypeXMLText(str), "initial": lambda: "", - "check": lambda x: isinstance(x, (StringType, UnicodeType)) + "check": lambda x: isinstance(x, string_types) }, "gMonth": { @@ -2492,7 +2493,7 @@ "facets": NUMBER_FACETS, "generate": GenerateSimpleTypeXMLText(str), "initial": lambda: "", - "check": lambda x: isinstance(x, (StringType, UnicodeType)) + "check": lambda x: isinstance(x, string_types) }, "gMonthDay": { @@ -2502,7 +2503,7 @@ "facets": NUMBER_FACETS, "generate": GenerateSimpleTypeXMLText(str), "initial": lambda: "", - "check": lambda x: isinstance(x, (StringType, UnicodeType)) + "check": lambda x: isinstance(x, string_types) }, "gDay": { @@ -2512,7 +2513,7 @@ "facets": NUMBER_FACETS, "generate": GenerateSimpleTypeXMLText(str), "initial": lambda: "", - "check": lambda x: isinstance(x, (StringType, UnicodeType)) + "check": lambda x: isinstance(x, string_types) }, "Name": { @@ -2522,7 +2523,7 @@ "facets": STRING_FACETS, "generate": GenerateSimpleTypeXMLText(lambda x: x), "initial": lambda: "", - "check": lambda x: isinstance(x, (StringType, UnicodeType)) + "check": lambda x: isinstance(x, string_types) }, "QName": { @@ -2532,7 +2533,7 @@ "facets": STRING_FACETS, "generate": GenerateSimpleTypeXMLText(lambda x: x), "initial": lambda: "", - "check": lambda x: isinstance(x, (StringType, UnicodeType)) + "check": lambda x: isinstance(x, string_types) }, "NCName": { @@ -2542,7 +2543,7 @@ "facets": STRING_FACETS, "generate": GenerateSimpleTypeXMLText(lambda x: x), "initial": lambda: "", - "check": lambda x: isinstance(x, (StringType, UnicodeType)) + "check": lambda x: isinstance(x, string_types) }, "anyURI": { @@ -2552,7 +2553,7 @@ "facets": STRING_FACETS, "generate": GenerateSimpleTypeXMLText(lambda x: x), "initial": lambda: "", - "check": lambda x: isinstance(x, (StringType, UnicodeType)) + "check": lambda x: isinstance(x, string_types) }, "language": { @@ -2562,7 +2563,7 @@ "facets": STRING_FACETS, "generate": GenerateSimpleTypeXMLText(lambda x: x), "initial": lambda: "en", - "check": lambda x: isinstance(x, (StringType, UnicodeType)) + "check": lambda x: isinstance(x, string_types) }, "ID": { @@ -2572,7 +2573,7 @@ "facets": STRING_FACETS, "generate": GenerateSimpleTypeXMLText(lambda x: x), "initial": lambda: "", - "check": lambda x: isinstance(x, (StringType, UnicodeType)) + "check": lambda x: isinstance(x, string_types) }, "IDREF": { @@ -2582,7 +2583,7 @@ "facets": STRING_FACETS, "generate": GenerateSimpleTypeXMLText(lambda x: x), "initial": lambda: "", - "check": lambda x: isinstance(x, (StringType, UnicodeType)) + "check": lambda x: isinstance(x, string_types) }, "IDREFS": { @@ -2592,7 +2593,7 @@ "facets": STRING_FACETS, "generate": GenerateSimpleTypeXMLText(lambda x: x), "initial": lambda: "", - "check": lambda x: isinstance(x, (StringType, UnicodeType)) + "check": lambda x: isinstance(x, string_types) }, "ENTITY": { @@ -2602,7 +2603,7 @@ "facets": STRING_FACETS, "generate": GenerateSimpleTypeXMLText(lambda x: x), "initial": lambda: "", - "check": lambda x: isinstance(x, (StringType, UnicodeType)) + "check": lambda x: isinstance(x, string_types) }, "ENTITIES": { @@ -2612,7 +2613,7 @@ "facets": STRING_FACETS, "generate": GenerateSimpleTypeXMLText(lambda x: x), "initial": lambda: "", - "check": lambda x: isinstance(x, (StringType, UnicodeType)) + "check": lambda x: isinstance(x, string_types) }, "NOTATION": { @@ -2622,7 +2623,7 @@ "facets": STRING_FACETS, "generate": GenerateSimpleTypeXMLText(lambda x: x), "initial": lambda: "", - "check": lambda x: isinstance(x, (StringType, UnicodeType)) + "check": lambda x: isinstance(x, string_types) }, "NMTOKEN": { @@ -2632,7 +2633,7 @@ "facets": STRING_FACETS, "generate": GenerateSimpleTypeXMLText(lambda x: x), "initial": lambda: "", - "check": lambda x: isinstance(x, (StringType, UnicodeType)) + "check": lambda x: isinstance(x, string_types) }, "NMTOKENS": { @@ -2642,7 +2643,7 @@ "facets": STRING_FACETS, "generate": GenerateSimpleTypeXMLText(lambda x: x), "initial": lambda: "", - "check": lambda x: isinstance(x, (StringType, UnicodeType)) + "check": lambda x: isinstance(x, string_types) }, # Complex Types