private void AutoComplete(System.Xml.WriteState writeState) { if (this.writeState == System.Xml.WriteState.Element) { this.EndStartElement(); } this.writeState = writeState; }
static XmlWellFormedWriter() { System.Xml.WriteState[] stateArray = new System.Xml.WriteState[0x11]; stateArray[1] = System.Xml.WriteState.Prolog; stateArray[2] = System.Xml.WriteState.Prolog; stateArray[3] = System.Xml.WriteState.Element; stateArray[4] = System.Xml.WriteState.Content; stateArray[5] = System.Xml.WriteState.Content; stateArray[6] = System.Xml.WriteState.Attribute; stateArray[7] = System.Xml.WriteState.Content; stateArray[8] = System.Xml.WriteState.Attribute; stateArray[9] = System.Xml.WriteState.Attribute; stateArray[10] = System.Xml.WriteState.Content; stateArray[11] = System.Xml.WriteState.Attribute; stateArray[12] = System.Xml.WriteState.Attribute; stateArray[13] = System.Xml.WriteState.Attribute; stateArray[14] = System.Xml.WriteState.Attribute; stateArray[15] = System.Xml.WriteState.Closed; stateArray[0x10] = System.Xml.WriteState.Error; state2WriteState = stateArray; StateTableDocument = new State[] { State.Document, State.Error, State.Error, State.Error, State.Error, State.PostB64Cont, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.PostB64Cont, State.Error, State.EndDocument, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.StartDoc, State.TopLevel, State.Document, State.StartContent, State.Content, State.PostB64Cont, State.PostB64Attr, State.AfterRootEle, State.EndAttrSCont, State.EndAttrSCont, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.StartDoc, State.TopLevel, State.Document, State.StartContent, State.Content, State.PostB64Cont, State.PostB64Attr, State.AfterRootEle, State.EndAttrSCont, State.EndAttrSCont, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.StartDoc, State.TopLevel, State.Document, State.Error, State.Error, State.PostB64Cont, State.PostB64Attr, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.StartDocEle, State.Element, State.Element, State.StartContentEle, State.Element, State.PostB64Cont, State.PostB64Attr, State.Error, State.EndAttrSEle, State.EndAttrSEle, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.StartContent, State.Content, State.PostB64Cont, State.PostB64Attr, State.Error, State.EndAttrEEle, State.EndAttrEEle, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Attribute, State.Error, State.PostB64Cont, State.PostB64Attr, State.Error, State.EndAttrSAttr, State.EndAttrSAttr, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.PostB64Cont, State.PostB64Attr, State.Error, State.Element, State.Element, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.StartContent, State.Content, State.PostB64Cont, State.PostB64Attr, State.Error, State.Attribute, State.SpecialAttr, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.StartContent, State.Content, State.PostB64Cont, State.PostB64Attr, State.Error, State.EndAttrSCont, State.EndAttrSCont, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.StartContent, State.Content, State.PostB64Cont, State.PostB64Attr, State.Error, State.Attribute, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.StartContentB64, State.B64Content, State.B64Content, State.B64Attribute, State.Error, State.B64Attribute, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.StartDoc, State.Error, State.Document, State.StartContent, State.Content, State.PostB64Cont, State.PostB64Attr, State.AfterRootEle, State.Attribute, State.SpecialAttr, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.StartDoc, State.TopLevel, State.Document, State.StartContent, State.Content, State.PostB64Cont, State.PostB64Attr, State.AfterRootEle, State.Attribute, State.SpecialAttr, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error }; StateTableAuto = new State[] { State.Document, State.Error, State.Error, State.Error, State.Error, State.PostB64Cont, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.PostB64Cont, State.Error, State.EndDocument, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.TopLevel, State.TopLevel, State.Error, State.StartContent, State.Content, State.PostB64Cont, State.PostB64Attr, State.AfterRootEle, State.EndAttrSCont, State.EndAttrSCont, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.TopLevel, State.TopLevel, State.Error, State.StartContent, State.Content, State.PostB64Cont, State.PostB64Attr, State.AfterRootEle, State.EndAttrSCont, State.EndAttrSCont, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.StartDoc, State.TopLevel, State.Error, State.Error, State.Error, State.PostB64Cont, State.PostB64Attr, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.StartFragEle, State.Element, State.Error, State.StartContentEle, State.Element, State.PostB64Cont, State.PostB64Attr, State.Element, State.EndAttrSEle, State.EndAttrSEle, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.StartContent, State.Content, State.PostB64Cont, State.PostB64Attr, State.Error, State.EndAttrEEle, State.EndAttrEEle, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.RootLevelAttr, State.Error, State.Error, State.Attribute, State.Error, State.PostB64Cont, State.PostB64Attr, State.Error, State.EndAttrSAttr, State.EndAttrSAttr, State.Error, State.StartRootLevelAttr, State.StartRootLevelAttr, State.PostB64RootAttr, State.RootLevelAttr, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.PostB64Cont, State.PostB64Attr, State.Error, State.Element, State.Element, State.Error, State.AfterRootLevelAttr, State.AfterRootLevelAttr, State.PostB64RootAttr, State.Error, State.Error, State.StartFragCont, State.StartFragCont, State.Error, State.StartContent, State.Content, State.PostB64Cont, State.PostB64Attr, State.Content, State.Attribute, State.SpecialAttr, State.Error, State.RootLevelAttr, State.RootLevelSpecAttr, State.PostB64RootAttr, State.Error, State.Error, State.StartFragCont, State.StartFragCont, State.Error, State.StartContent, State.Content, State.PostB64Cont, State.PostB64Attr, State.Content, State.EndAttrSCont, State.EndAttrSCont, State.Error, State.Error, State.Error, State.Error, State.Error, State.Error, State.StartFragCont, State.StartFragCont, State.Error, State.StartContent, State.Content, State.PostB64Cont, State.PostB64Attr, State.Content, State.Attribute, State.Error, State.Error, State.RootLevelAttr, State.Error, State.PostB64RootAttr, State.Error, State.Error, State.StartFragB64, State.StartFragB64, State.Error, State.StartContentB64, State.B64Content, State.B64Content, State.B64Attribute, State.B64Content, State.B64Attribute, State.Error, State.Error, State.RootLevelB64Attr, State.Error, State.RootLevelB64Attr, State.Error, State.Error, State.StartFragCont, State.TopLevel, State.Error, State.StartContent, State.Content, State.PostB64Cont, State.PostB64Attr, State.Content, State.Attribute, State.SpecialAttr, State.Error, State.RootLevelAttr, State.RootLevelSpecAttr, State.PostB64RootAttr, State.AfterRootLevelAttr, State.Error, State.TopLevel, State.TopLevel, State.Error, State.StartContent, State.Content, State.PostB64Cont, State.PostB64Attr, State.AfterRootEle, State.Attribute, State.SpecialAttr, State.Error, State.RootLevelAttr, State.RootLevelSpecAttr, State.PostB64RootAttr, State.AfterRootLevelAttr, State.Error }; }
internal virtual void Close(System.Xml.WriteState currentState) { this.Close(); }
public override void WriteEndElement() { if (this.IsClosed) { this.ThrowClosed(); } if (this.depth == 0) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(System.Runtime.Serialization.SR.GetString("XmlInvalidDepth", new object[] { "WriteEndElement", this.depth.ToString(CultureInfo.InvariantCulture) }))); } if (this.writeState == System.Xml.WriteState.Attribute) { this.WriteEndAttribute(); } this.FlushBase64(); if (this.writeState == System.Xml.WriteState.Element) { this.nsMgr.DeclareNamespaces(this.writer); this.writer.WriteEndStartElement(true); } else { Element element = this.elements[this.depth]; this.writer.WriteEndElement(element.Prefix, element.LocalName); } this.ExitScope(); this.writeState = System.Xml.WriteState.Content; }
public override void WriteEndDocument() { if (this.IsClosed) { this.ThrowClosed(); } if ((this.writeState == System.Xml.WriteState.Start) || (this.writeState == System.Xml.WriteState.Prolog)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(System.Runtime.Serialization.SR.GetString("XmlNoRootElement"))); } this.FinishDocument(); this.writeState = System.Xml.WriteState.Start; this.documentState = DocumentState.End; }
public override void WriteEndAttribute() { if (this.IsClosed) { this.ThrowClosed(); } if (this.writeState != System.Xml.WriteState.Attribute) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(System.Runtime.Serialization.SR.GetString("XmlInvalidWriteState", new object[] { "WriteEndAttribute", this.WriteState.ToString() }))); } this.FlushBase64(); try { if (this.isXmlAttribute) { if (this.attributeLocalName == "lang") { this.nsMgr.AddLangAttribute(this.attributeValue); } else if (this.attributeLocalName == "space") { if (this.attributeValue != "preserve") { if (this.attributeValue != "default") { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(System.Runtime.Serialization.SR.GetString("XmlInvalidXmlSpace", new object[] { this.attributeValue }))); } this.nsMgr.AddSpaceAttribute(System.Xml.XmlSpace.Default); } else { this.nsMgr.AddSpaceAttribute(System.Xml.XmlSpace.Preserve); } } this.isXmlAttribute = false; this.attributeLocalName = null; this.attributeValue = null; } if (this.isXmlnsAttribute) { this.nsMgr.AddNamespaceIfNotDeclared(this.attributeLocalName, this.attributeValue, null); this.isXmlnsAttribute = false; this.attributeLocalName = null; this.attributeValue = null; } else { this.writer.WriteEndAttribute(); } } finally { this.writeState = System.Xml.WriteState.Element; } }
private void StartAttribute(ref string prefix, string localName, string ns, XmlDictionaryString xNs) { if (this.IsClosed) { this.ThrowClosed(); } if (this.writeState == System.Xml.WriteState.Attribute) { this.WriteEndAttribute(); } if ((localName == null) || ((localName.Length == 0) && (prefix != "xmlns"))) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("localName")); } if (this.writeState != System.Xml.WriteState.Element) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(System.Runtime.Serialization.SR.GetString("XmlInvalidWriteState", new object[] { "WriteStartAttribute", this.WriteState.ToString() }))); } if (prefix == null) { if ((ns == "http://www.w3.org/2000/xmlns/") && (localName != "xmlns")) { prefix = "xmlns"; } else if (ns == "http://www.w3.org/XML/1998/namespace") { prefix = "xml"; } else { prefix = string.Empty; } } if ((prefix.Length == 0) && (localName == "xmlns")) { prefix = "xmlns"; localName = string.Empty; } this.isXmlnsAttribute = false; this.isXmlAttribute = false; if (prefix == "xml") { if ((ns != null) && (ns != "http://www.w3.org/XML/1998/namespace")) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(System.Runtime.Serialization.SR.GetString("XmlPrefixBoundToNamespace", new object[] { "xml", "http://www.w3.org/XML/1998/namespace", ns }), "ns")); } this.isXmlAttribute = true; this.attributeValue = string.Empty; this.attributeLocalName = localName; } else if (prefix == "xmlns") { if ((ns != null) && (ns != "http://www.w3.org/2000/xmlns/")) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(System.Runtime.Serialization.SR.GetString("XmlPrefixBoundToNamespace", new object[] { "xmlns", "http://www.w3.org/2000/xmlns/", ns }), "ns")); } this.isXmlnsAttribute = true; this.attributeValue = string.Empty; this.attributeLocalName = localName; } else if (ns == null) { if (prefix.Length != 0) { ns = this.nsMgr.LookupNamespace(prefix); if (ns == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(System.Runtime.Serialization.SR.GetString("XmlUndefinedPrefix", new object[] { prefix }), "prefix")); } } else { ns = string.Empty; } } else if (ns.Length == 0) { if (prefix.Length != 0) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(System.Runtime.Serialization.SR.GetString("XmlEmptyNamespaceRequiresNullPrefix"), "prefix")); } } else if (prefix.Length == 0) { prefix = this.nsMgr.LookupAttributePrefix(ns); if (prefix == null) { if ((ns.Length == "http://www.w3.org/2000/xmlns/".Length) && (ns == "http://www.w3.org/2000/xmlns/")) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(System.Runtime.Serialization.SR.GetString("XmlSpecificBindingNamespace", new object[] { "xmlns", ns }))); } if ((ns.Length == "http://www.w3.org/XML/1998/namespace".Length) && (ns == "http://www.w3.org/XML/1998/namespace")) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(System.Runtime.Serialization.SR.GetString("XmlSpecificBindingNamespace", new object[] { "xml", ns }))); } prefix = this.GeneratePrefix(ns, xNs); } } else { this.nsMgr.AddNamespaceIfNotDeclared(prefix, ns, xNs); } this.writeState = System.Xml.WriteState.Attribute; }
protected void SetOutput(XmlStreamNodeWriter writer) { this.inList = false; this.writer = writer; this.nodeWriter = writer; this.writeState = System.Xml.WriteState.Start; this.documentState = DocumentState.None; this.nsMgr.Clear(); if (this.depth != 0) { this.elements = null; this.depth = 0; } this.attributeLocalName = null; this.attributeValue = null; this.oldWriter = null; this.oldStream = null; }
public override void WriteStartDocument() { if (this.IsClosed) { this.ThrowClosed(); } if (this.writeState != System.Xml.WriteState.Start) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(System.Runtime.Serialization.SR.GetString("XmlInvalidWriteState", new object[] { "WriteStartDocument", this.WriteState.ToString() }))); } this.writeState = System.Xml.WriteState.Prolog; this.documentState = DocumentState.Document; this.writer.WriteDeclaration(); }