State StartState() {
XmlNodeType nodeType = XmlNodeType.None;
switch (type) {
case DocumentXmlWriterType.InsertSiblingAfter:
case DocumentXmlWriterType.InsertSiblingBefore:
XmlNode parent = start.ParentNode;
if (parent != null) {
nodeType = parent.NodeType;
}
if (nodeType == XmlNodeType.Document) {
return State.Prolog;
}
else if (nodeType == XmlNodeType.DocumentFragment) {
return State.Fragment;
}
break;
case DocumentXmlWriterType.PrependChild:
case DocumentXmlWriterType.AppendChild:
nodeType = start.NodeType;
if (nodeType == XmlNodeType.Document) {
return State.Prolog;
}
else if (nodeType == XmlNodeType.DocumentFragment) {
return State.Fragment;
}
break;
case DocumentXmlWriterType.AppendAttribute:
return State.Attribute;
case DocumentXmlWriterType.ReplaceToFollowingSibling:
break;
}
return State.Content;
}