--- a/xmlclass/xsdschema.py Mon Mar 27 10:19:14 2023 +0200
+++ b/xmlclass/xsdschema.py Fri Oct 28 12:39:15 2022 +0800
@@ -23,8 +23,8 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-from __future__ import absolute_import
-from __future__ import print_function
+
+
import os
import re
import datetime
@@ -32,7 +32,7 @@
from xml.dom import minidom
from future.builtins import round
from six import string_types
-from past.builtins import long
+from past.builtins import int
from xmlclass.xmlclass import *
@@ -77,9 +77,9 @@
DEFAULT_FACETS = GenerateDictFacets(["pattern", "whiteSpace", "enumeration"])
-NUMBER_FACETS = GenerateDictFacets(DEFAULT_FACETS.keys() + ["maxInclusive", "maxExclusive", "minInclusive", "minExclusive"])
-DECIMAL_FACETS = GenerateDictFacets(NUMBER_FACETS.keys() + ["totalDigits", "fractionDigits"])
-STRING_FACETS = GenerateDictFacets(DEFAULT_FACETS.keys() + ["length", "minLength", "maxLength"])
+NUMBER_FACETS = GenerateDictFacets(list(DEFAULT_FACETS.keys()) + ["maxInclusive", "maxExclusive", "minInclusive", "minExclusive"])
+DECIMAL_FACETS = GenerateDictFacets(list(NUMBER_FACETS.keys()) + ["totalDigits", "fractionDigits"])
+STRING_FACETS = GenerateDictFacets(list(DEFAULT_FACETS.keys()) + ["length", "minLength", "maxLength"])
ALL_FACETS = ["pattern", "whiteSpace", "enumeration", "maxInclusive",
"maxExclusive", "minInclusive", "minExclusive", "totalDigits",
@@ -204,7 +204,7 @@
if len(facets) == 0:
facets[facettype] = ([value], False)
continue
- elif facets.keys() == [facettype]:
+ elif list(facets.keys()) == [facettype]:
facets[facettype][0].append(value)
continue
else:
@@ -302,14 +302,14 @@
facets[facettype] = (value, facet.get("fixed", False))
# Report not redefined facet from base type to new created type
- for facettype, facetvalue in basetypeinfos["facets"].items():
+ for facettype, facetvalue in list(basetypeinfos["facets"].items()):
if facettype not in facets:
facets[facettype] = facetvalue
# Generate extract value for new created type
def ExtractSimpleTypeValue(attr, extract=True):
value = basetypeinfos["extract"](attr, extract)
- for facetname, (facetvalue, _facetfixed) in facets.items():
+ for facetname, (facetvalue, _facetfixed) in list(facets.items()):
if facetvalue is not None:
if facetname == "enumeration" and value not in facetvalue:
raise ValueError("\"%s\" not in enumerated values" % value)
@@ -328,7 +328,7 @@
elif facetname == "maxExclusive" and value >= facetvalue:
raise ValueError("value must be lesser than %s" % str(facetvalue))
elif facetname == "pattern":
- model = re.compile("(?:%s)?$" % "|".join(map(lambda x: "(?:%s)" % x, facetvalue)))
+ model = re.compile("(?:%s)?$" % "|".join(["(?:%s)" % x for x in facetvalue]))
result = model.match(value)
if result is None:
if len(facetvalue) > 1:
@@ -343,7 +343,7 @@
return value
def CheckSimpleTypeValue(value):
- for facetname, (facetvalue, _facetfixed) in facets.items():
+ for facetname, (facetvalue, _facetfixed) in list(facets.items()):
if facetvalue is not None:
if facetname == "enumeration" and value not in facetvalue:
return False
@@ -362,7 +362,7 @@
elif facetname == "maxExclusive" and value >= facetvalue:
return False
elif facetname == "pattern":
- model = re.compile("(?:%s)?$" % "|".join(map(lambda x: "(?:%s)" % x, facetvalue)))
+ model = re.compile("(?:%s)?$" % "|".join(["(?:%s)" % x for x in facetvalue]))
result = model.match(value)
if result is None:
if len(facetvalue) > 1:
@@ -372,7 +372,7 @@
return True
def SimpleTypeInitialValue():
- for facetname, (facetvalue, _facetfixed) in facets.items():
+ for facetname, (facetvalue, _facetfixed) in list(facets.items()):
if facetvalue is not None:
if facetname == "enumeration":
return facetvalue[0]
@@ -515,7 +515,7 @@
if base is not None:
basetypeinfos = factory.FindSchemaElement(base)
if not isinstance(basetypeinfos, string_types) and basetypeinfos["type"] == COMPLEXTYPE:
- attrnames = dict(map(lambda x: (x["name"], True), basetypeinfos["attributes"]))
+ attrnames = dict([(x["name"], True) for x in basetypeinfos["attributes"]])
for element in elements:
if element["type"] == ATTRIBUTE:
@@ -996,7 +996,7 @@
elif isinstance(schema, dict):
if not isinstance(reference, dict) or len(schema) != len(reference):
return False
- for name, value in schema.items():
+ for name, value in list(schema.items()):
ref_value = reference.get(name, None)
if ref_value is None and value is not None:
return False
@@ -1061,7 +1061,7 @@
if child.nodeType == self.Document.ELEMENT_NODE:
schema = child
break
- for qualified_name, attr in schema._attrs.items():
+ for qualified_name, attr in list(schema._attrs.items()):
namespace, name = DecomposeQualifiedName(qualified_name)
if namespace == "xmlns":
value = GetAttributeValue(attr)
@@ -2244,7 +2244,7 @@
"facets": STRING_FACETS,
"generate": GenerateSimpleTypeXMLText(str),
"initial": lambda: 0,
- "check": lambda x: isinstance(x, (int, long))
+ "check": lambda x: isinstance(x, int)
},
"hexBinary": {
@@ -2254,7 +2254,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, (int, long))
+ "check": lambda x: isinstance(x, int)
},
"integer": {