--- 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