xmlclass/xsdschema.py
changeset 1872 866fb3ab8778
parent 1856 c2cba67145eb
child 2450 5024c19ca8f0
equal deleted inserted replaced
1871:933fbe9a5e2c 1872:866fb3ab8778
   374                     if facetname == "enumeration":
   374                     if facetname == "enumeration":
   375                         return facetvalue[0]
   375                         return facetvalue[0]
   376                     elif facetname == "length":
   376                     elif facetname == "length":
   377                         return " "*facetvalue
   377                         return " "*facetvalue
   378                     elif facetname == "minLength":
   378                     elif facetname == "minLength":
   379                         return " "*minLength
   379                         return " "*facetvalue
   380                     elif facetname == "minInclusive" and facetvalue > 0:
   380                     elif facetname == "minInclusive" and facetvalue > 0:
   381                         return facetvalue
   381                         return facetvalue
   382                     elif facetname == "minExclusive" and facetvalue >= 0:
   382                     elif facetname == "minExclusive" and facetvalue >= 0:
   383                         return facetvalue + 1
   383                         return facetvalue + 1
   384                     elif facetname == "maxInclusive" and facetvalue < 0:
   384                     elif facetname == "maxInclusive" and facetvalue < 0:
   565             elif group["type"] == CHOICE:
   565             elif group["type"] == CHOICE:
   566                 content = group.copy()
   566                 content = group.copy()
   567                 content["name"] = "content"
   567                 content["name"] = "content"
   568                 extension["elements"].append(content)
   568                 extension["elements"].append(content)
   569             elif group["type"] == "group":
   569             elif group["type"] == "group":
   570                 elmtgroup = factory.FindSchemaElement(child["ref"], ELEMENTSGROUP)
   570                 elmtgroup = factory.FindSchemaElement(group["ref"], ELEMENTSGROUP)
   571                 if "elements" in elmtgroup:
   571                 if "elements" in elmtgroup:
   572                     extension["elements"] = elmtgroup["elements"]
   572                     extension["elements"] = elmtgroup["elements"]
   573                     extension["order"] = elmtgroup["order"]
   573                     extension["order"] = elmtgroup["order"]
   574                 else:
   574                 else:
   575                     content = elmtgroup.copy()
   575                     content = elmtgroup.copy()
   648             elif group["type"] == CHOICE:
   648             elif group["type"] == CHOICE:
   649                 content = group.copy()
   649                 content = group.copy()
   650                 content["name"] = "content"
   650                 content["name"] = "content"
   651                 complexType["elements"].append(content)
   651                 complexType["elements"].append(content)
   652             elif group["type"] == "group":
   652             elif group["type"] == "group":
   653                 elmtgroup = factory.FindSchemaElement(child["ref"], ELEMENTSGROUP)
   653                 elmtgroup = factory.FindSchemaElement(group["ref"], ELEMENTSGROUP)
   654                 if "elements" in elmtgroup:
   654                 if "elements" in elmtgroup:
   655                     complexType["elements"] = elmtgroup["elements"]
   655                     complexType["elements"] = elmtgroup["elements"]
   656                     complexType["order"] = elmtgroup["order"]
   656                     complexType["order"] = elmtgroup["order"]
   657                 else:
   657                 else:
   658                     content = elmtgroup.copy()
   658                     content = elmtgroup.copy()
   756             element["constraints"] = constraints
   756             element["constraints"] = constraints
   757             element["minOccurs"] = attributes["minOccurs"]
   757             element["minOccurs"] = attributes["minOccurs"]
   758             element["maxOccurs"] = attributes["maxOccurs"]
   758             element["maxOccurs"] = attributes["maxOccurs"]
   759             return element
   759             return element
   760         else:
   760         else:
   761             raise ValueError("\"%s\" base type isn't defined or circular referenced!" % name)
   761             raise ValueError("\"%s\" base type isn't defined or circular referenced!" % attributes["ref"])
   762 
   762 
   763     elif "name" in attributes:
   763     elif "name" in attributes:
   764         element = {"type": ELEMENT, "elmt_type": attributes.get("type", None), "constraints": constraints, "doc": annotations}
   764         element = {"type": ELEMENT, "elmt_type": attributes.get("type", None), "constraints": constraints, "doc": annotations}
   765         if len(types) > 0:
   765         if len(types) > 0:
   766             if element["elmt_type"] is None:
   766             if element["elmt_type"] is None: