The base module
Aucent.MAX.AXE.XBRLParser has a serious bug; XBRL instances that have different bindings for namespaces in different elements. For example,
<context xmlns="http://www.xbrl.org/2003/instance" ... />
<Assets
xmlns="http://xbrl.us/us-gaap/2008-03-31" ... />
will blow out every time with this error:
Index was outside the bounds of the array. at Aucent.MAX.AXE.XBRLParser.MarkupProperty.TryCreateFromXml(Int32 index, XmlNodeList nodes, ArrayList contexts, ArrayList units, MarkupProperty& mp, ArrayList& errors)
at Aucent.MAX.AXE.XBRLParser.Instance.ValidateAndParse(ArrayList& errors)
at Aucent.MAX.AXE.XBRLParser.Instance.TryLoadInstanceDoc(String filename, ArrayList& errors)
Since that module is also used in the SEC viewer and in Dragon Tag, the consequences are going to be severe for anyone who's created an instance programmatically - they have to do a final pass on the instance to enforce a restricted syntax for namespace prefix bindings. (!)
If I could figure out how to get Visual Studio 2005's debugger to insert breakpoints into XBRLParser methods, even though the solution running is DragonView, then I could see what was really going on, and maybe even submit a temporary fix. I could use a hint on that.
However, looking at the code it appears to be actually trying to interpret surface-level element names doing things like split them them at the ':' -- when it should be really using a DOM, accessing the namespace-uri and local-name of the QName, so there's probably a more pervasive fix that could be done.
Thank you for submitting this defect. I have forwarded it to our QA Department for review.