Skip to content

Commit

Permalink
ARELLE-344 abstract element in instance missing error message
Browse files Browse the repository at this point in the history
  • Loading branch information
Herm Fischer authored and Herm Fischer committed Feb 4, 2015
1 parent 01a8d4f commit acb2d58
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions arelle/XmlValidate.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,11 +99,13 @@ def validate(modelXbrl, elt, recurse=True, attrQname=None, ixFacts=False):
if (getattr(elt,"xValid", UNVALIDATED) == UNVALIDATED) and (not isIxFact or ixFacts):
qnElt = elt.qname if ixFacts and isIxFact else elt.elementQname
modelConcept = modelXbrl.qnameConcepts.get(qnElt)
isAbstract = False
if modelConcept is not None:
isNillable = modelConcept.isNillable
type = modelConcept.type
if modelConcept.isAbstract:
baseXsdType = "noContent"
isAbstract = True
else:
baseXsdType = modelConcept.baseXsdType
facets = modelConcept.facets
Expand Down Expand Up @@ -132,6 +134,8 @@ def validate(modelXbrl, elt, recurse=True, attrQname=None, ixFacts=False):
typeName=modelConcept.baseXsdType if modelConcept is not None else "unknown",
value=XmlUtil.innerText(elt, ixExclude=True))
try:
if isAbstract:
raise ValueError("element is abstract")
if isNil:
text = ""
elif baseXsdType == "noContent":
Expand All @@ -154,6 +158,10 @@ def validate(modelXbrl, elt, recurse=True, attrQname=None, ixFacts=False):
modelObject=elt, element=errElt, fact=elt.qname, transform=elt.format,
typeName=modelConcept.baseXsdType if modelConcept is not None else "unknown",
value=XmlUtil.innerText(elt, ixExclude=True))
elif isAbstract:
modelXbrl.error("xmlValidation:abstractElement",
_("Element %(element)s has abstract declaration, value: %(value)s"),
modelObject=elt, element=errElt, error=str(err), value=elt.text)
else:
modelXbrl.error("xmlValidation:valueError",
_("Element %(element)s error %(error)s value: %(value)s"),
Expand Down

0 comments on commit acb2d58

Please sign in to comment.