private void ParseXml()
{
InternalST.Soap( this, "ParseXml");
while (!bStop && xmlReader.Read())
{
if (depth < xmlReader.Depth)
{
soapHandler.StartChildren();
depth = xmlReader.Depth;
}
else if (depth > xmlReader.Depth)
{
soapHandler.FinishChildren(xmlReader.Prefix, xmlReader.LocalName, xmlReader.NamespaceURI);
depth = xmlReader.Depth;
}
switch (xmlReader.NodeType)
{
case(XmlNodeType.None):
break;
case(XmlNodeType.Element):
Dump("Node Element", xmlReader);
soapHandler.StartElement(xmlReader.Prefix, xmlReader.LocalName, xmlReader.NamespaceURI);
int attributeCount = xmlReader.AttributeCount;
while (xmlReader.MoveToNextAttribute())
{
soapHandler.Attribute(xmlReader.Prefix, xmlReader.LocalName, xmlReader.NamespaceURI, xmlReader.Value);
}
xmlReader.MoveToElement();
if (xmlReader.IsEmptyElement)
soapHandler.EndElement(xmlReader.Prefix, xmlReader.LocalName, xmlReader.NamespaceURI);
break;
case XmlNodeType.EndElement:
Dump("Node EndElement", xmlReader);
soapHandler.EndElement(xmlReader.Prefix, xmlReader.LocalName, xmlReader.NamespaceURI);
break;
case(XmlNodeType.Text):
Dump("Node Text", xmlReader);
soapHandler.Text(xmlReader.Value);
break;
case(XmlNodeType.SignificantWhitespace):
Dump("Node SignificantWhitespace", xmlReader);
soapHandler.Text(xmlReader.Value);
break;
case(XmlNodeType.Whitespace):
Dump("Node Whitespace", xmlReader);
soapHandler.Text(xmlReader.Value);
break;
case(XmlNodeType.Entity):
Dump("Node Entity", xmlReader);
break;
case(XmlNodeType.CDATA):
Dump("Node CDATA", xmlReader);
soapHandler.Text(xmlReader.Value);
break;
case(XmlNodeType.Comment):
Dump("Node Comment", xmlReader);
soapHandler.Comment(xmlReader.Value);
break;
case(XmlNodeType.EntityReference):
Dump("Node EntityReference", xmlReader);
break;
case(XmlNodeType.ProcessingInstruction):
Dump("Node ProcessingInstruction", xmlReader);
break;
case(XmlNodeType.Document):
Dump("Node Document", xmlReader);
break;
case(XmlNodeType.DocumentType):
Dump("Node DocumentType", xmlReader);
break;
case(XmlNodeType.DocumentFragment):
Dump("Node DocumentFragment", xmlReader);
break;
case(XmlNodeType.Notation):
Dump("Node Notation", xmlReader);
break;
case(XmlNodeType.EndEntity):
Dump("Node EndEntity", xmlReader);
break;
default:
Dump("Node Default", xmlReader);
break;
}
}
}