public override XmlWriter InsertBefore() {
switch (source.NodeType) {
case XmlNodeType.Attribute:
case XmlNodeType.Document:
case XmlNodeType.DocumentFragment:
throw new InvalidOperationException(Res.GetString(Res.Xpn_BadPosition));
case XmlNodeType.Text:
case XmlNodeType.CDATA:
case XmlNodeType.SignificantWhitespace:
case XmlNodeType.Whitespace:
CalibrateText();
break;
default:
break;
}
DocumentXmlWriter writer = new DocumentXmlWriter(DocumentXmlWriterType.InsertSiblingBefore, source, document);
writer.NamespaceManager = GetNamespaceManager(source.ParentNode, document);
return new XmlWellFormedWriter(writer, writer.Settings);
}