public void EncodeWithTranslation(string str, XmlStringType valueType) { unsafe { fixed(char *start = str) { char *end = start + str.Length; EncodeWithTranslation(start, end, valueType); } } }
public void EncodeWithTranslation(char[] buffer, int offset, int count, XmlStringType valueType) { ValidateBufferBounds(buffer, offset, count); unsafe { fixed(char *bufferStart = buffer) { char *start = bufferStart + offset; char *end = bufferStart + (offset + count); EncodeWithTranslation(start, end, valueType); } } }
private unsafe void EncodeWithTranslation(char *start, char *end, XmlStringType valueType) { for (char *p = start; p < end; p++) { switch (*p) { case '&': Encode("&"); break; case '<': Encode("<"); break; case '>': if (valueType != XmlStringType.AttributeValue) { Encode(">"); } else { Encode(*p); } break; case Char13: Encode(Char13EntityReference); break; case Char10: if (valueType == XmlStringType.AttributeValue) { Encode("
"); } else { Encode(*p); } break; case Char9: if (valueType == XmlStringType.AttributeValue) { Encode("	"); } else { Encode(*p); } break; case '\"': if (valueType == XmlStringType.AttributeValue) { Encode("""); } else { Encode(*p); } break; default: Encode(*p); break; } } }
internal static void WriteValue(this XmlWriter writer, object value, XmlStringType type) { writer.WriteString(XmlHelpers.FormatXmlString(value.ToString(), type == XmlStringType.FilePath)); }
internal static void WriteElementString(this XmlWriter writer, string name, string value, XmlStringType type) { switch (type) { case XmlStringType.Default: case XmlStringType.FilePath: writer.WriteElementString(name, XmlHelpers.FormatXmlString(value, type == XmlStringType.FilePath)); break; case XmlStringType.MultiLanguageText: writer.WriteStartElement(name); writer.WriteStartElement("MultiLanguageText"); writer.WriteAttributeString("Lang", CultureInfo.CurrentCulture.Name); writer.WriteValue(value, XmlStringType.Default); writer.WriteEndElement(); writer.WriteEndElement(); break; default: break; } }
internal static void WriteAttributeString(this XmlWriter writer, string name, string value, XmlStringType type) { writer.WriteAttributeString(name, XmlHelpers.FormatXmlString(value, type == XmlStringType.FilePath)); }