/// <summary> /// Demonstrates how to disable validation when writing an XLIFF document. /// </summary> /// <param name="document">The document to write.</param> /// <param name="file">The path to the document to write.</param> public static void DisableValidationOnWrite(XliffDocument document, string file) { using (IO.FileStream stream = new IO.FileStream(file, IO.FileMode.Create, IO.FileAccess.Write)) { XliffWriter writer; XliffWriterSettings settings; settings = new XliffWriterSettings(); settings.Validators.Clear(); writer = new XliffWriter(settings); writer.Serialize(stream, document); } }
/// <summary> /// Serializes an <see cref="XliffDocument"/> to a stream. /// </summary> /// <param name="stream">The stream to write to.</param> /// <param name="document">The document to write.</param> public void Serialize(Stream stream, XliffDocument document) { XmlWriterSettings settings; ArgValidator.Create(stream, "stream").IsNotNull(); ArgValidator.Create(document, "document").IsNotNull(); settings = new XmlWriterSettings(); settings.Indent = this.settings.Indent; if (settings.Indent && (this.settings.IndentChars != null)) { settings.IndentChars = this.settings.IndentChars; } using (XmlWriter writer = XmlWriter.Create(stream, settings)) { this.Serialize(writer, document); } }
/// <summary> /// Serializes an element into a stream. /// </summary> /// <param name="stream">The stream to write to.</param> /// <param name="element">The element to serialize.</param> /// <param name="serializeInnerContent">True to serialize inner content. If false only the opening and closing /// tags will be serialized along with attributes.</param> public static void SerializeElement(Stream stream, ResourceStringContent element, bool serializeInnerContent) { IXliffDataProvider provider; IEnumerable<ElementInfo> children; XliffWriter writer; XmlWriterSettings settings; Debug.Assert(element != null, "The element should not be null."); Debug.Assert(element.Parent != null, "The element parent should not be null."); Debug.Assert(stream != null, "The stream should not be null."); settings = new XmlWriterSettings(); settings.OmitXmlDeclaration = true; writer = new XliffWriter(); writer.writer = XmlWriter.Create(stream, settings); writer.writer.WriteStartDocument(); provider = element.Parent; children = provider.GetXliffChildren(); foreach (ElementInfo pair in children) { if (pair.Element == element) { // Don't use the namespace or prefix otherwise they'll be output for fragments. The namespaces // should be written to the root xliff node so they'll be ok for the final document. writer.SerializeImpl( pair.LocalName, null, null, pair.Element, null, serializeInnerContent); break; } } writer.writer.WriteEndDocument(); writer.writer.Flush(); }
/// <summary> /// Serializes an element into a stream. /// </summary> /// <param name="stream">The stream to write to.</param> /// <param name="element">The element to serialize.</param> /// <param name="serializeInnerContent">True to serialize inner content. If false only the opening and closing /// tags will be serialized along with attributes.</param> public static void SerializeElement(Stream stream, ResourceStringContent element, bool serializeInnerContent) { IXliffDataProvider provider; IEnumerable <ElementInfo> children; XliffWriter writer; XmlWriterSettings settings; Debug.Assert(element != null, "The element should not be null."); Debug.Assert(element.Parent != null, "The element parent should not be null."); Debug.Assert(stream != null, "The stream should not be null."); settings = new XmlWriterSettings(); settings.OmitXmlDeclaration = true; writer = new XliffWriter(); writer.writer = XmlWriter.Create(stream, settings); writer.writer.WriteStartDocument(); provider = element.Parent; children = provider.GetXliffChildren(); foreach (ElementInfo pair in children) { if (pair.Element == element) { // Don't use the namespace or prefix otherwise they'll be output for fragments. The namespaces // should be written to the root xliff node so they'll be ok for the final document. writer.SerializeImpl( pair.LocalName, null, null, pair.Element, null, serializeInnerContent); break; } } writer.writer.WriteEndDocument(); writer.writer.Flush(); }
/// <summary> /// Initializes a new instance of the <see cref="XliffWriter"/> class. /// </summary> /// <param name="settings">The settings describing how to write content.</param> public XliffWriter(XliffWriterSettings settings) { ArgValidator.Create(settings, "settings").IsNotNull(); this.settings = settings; }