/// /// * <param name="parser"> </param> /// * <param name="inSource"> </param> /// * <param name="bEraseEmpty"> /// * @return </param> /// private JDFDoc runParser(XmlSourceSupport inSource, bool bEraseEmpty) { JDFDoc doc = new JDFDoc(); try { XmlReaderSettings settings = new XmlReaderSettings(); XmlReader reader = XmlTextReader.Create(inSource.Bytes, settings); base.Load(reader); doc.setMemberDoc((DocumentJDFImpl)this); if (bEraseEmpty) { doc.getRoot().eraseEmptyNodes(true); // cleanup the XML } } catch (StackOverflowException) { m_lastExcept = null; doc = null; } catch (Exception e) { m_lastExcept = e; doc = null; } if (doc != null && m_ErrorHandler != null) { doc.setValidationResult(m_ErrorHandler.getXMLOutput()); m_ErrorHandler.cleanXML(m_SchemaLocation); } if (doc != null) { KElement root = doc.getRoot(); DocumentJDFImpl memberDocument = doc.getMemberDocument(); string namespaceURI = root.getNamespaceURI(); if (namespaceURI == null || !namespaceURI.ToLower().Contains(JDFConstants.CIP4ORG)) { memberDocument.bKElementOnly = true; memberDocument.setIgnoreNSDefault(true); } else { memberDocument.setIgnoreNSDefault(ignoreNSDefault); } } return(doc); }