public WriteNode ( XmlReader reader, bool defattr ) : void | ||
reader | XmlReader | |
defattr | bool | |
return | void |
public virtual void WriteNode(XmlReader reader, bool defattr) {
if (null == reader) {
throw new ArgumentNullException("reader");
}
bool canReadChunk = reader.CanReadValueChunk;
int d = reader.NodeType == XmlNodeType.None ? -1 : reader.Depth;
do {
switch (reader.NodeType) {
case XmlNodeType.Element:
WriteStartElement(reader.Prefix, reader.LocalName, reader.NamespaceURI);
WriteAttributes(reader, defattr);
if (reader.IsEmptyElement) {
WriteEndElement();
break;
}
break;
case XmlNodeType.Text:
if (canReadChunk) {
if (writeNodeBuffer == null) {
writeNodeBuffer = new char[WriteNodeBufferSize];
}
int read;
while ((read = reader.ReadValueChunk(writeNodeBuffer, 0, WriteNodeBufferSize)) > 0) {
this.WriteChars(writeNodeBuffer, 0, read);
}
}
else {
WriteString(reader.Value);
}
break;
case XmlNodeType.Whitespace:
case XmlNodeType.SignificantWhitespace:
WriteWhitespace(reader.Value);
break;
case XmlNodeType.CDATA:
WriteCData(reader.Value);
break;
case XmlNodeType.EntityReference:
WriteEntityRef(reader.Name);
break;
case XmlNodeType.XmlDeclaration:
case XmlNodeType.ProcessingInstruction:
WriteProcessingInstruction(reader.Name, reader.Value);
break;
case XmlNodeType.DocumentType:
WriteDocType(reader.Name, reader.GetAttribute("PUBLIC"), reader.GetAttribute("SYSTEM"), reader.Value);
break;
case XmlNodeType.Comment:
WriteComment(reader.Value);
break;
case XmlNodeType.EndElement:
WriteFullEndElement();
break;
}
} while (reader.Read() && (d < reader.Depth || (d == reader.Depth && reader.NodeType == XmlNodeType.EndElement)));
}
XmlWriter::WriteNode ( |
public void WriteXml(XmlWriter xmlWriter) { if (wsdl != null) { using (MemoryStream ms = new MemoryStream()) { wsdl.Write(ms); XmlDictionaryReaderQuotas quota = new XmlDictionaryReaderQuotas(); quota.MaxDepth = 32; quota.MaxStringContentLength = 8192; quota.MaxArrayLength = 16384; quota.MaxBytesPerRead = 4096; quota.MaxNameTableCharCount = 16384; ms.Seek(0, SeekOrigin.Begin); XmlDictionaryReader reader = XmlDictionaryReader.CreateTextReader(ms, null, quota, null); if ((reader.MoveToContent() == XmlNodeType.Element) && (reader.Name == "wsdl:definitions")) { xmlWriter.WriteNode(reader, false); } reader.Close(); } } }