Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die XmlWriter-Klasse ermöglicht das Schreiben von typisierten Daten. Die WriteValue-Methode akzeptiert Werte mit einfachen CLR-Typen (Common Language Runtime). Diese Möglichkeit ist bei einfachen CLR-Typen und einer XmlWriter-Instanz nützlich. Sie können den typisierten Wert durch einen Aufruf der WriteValue-Methode schreiben, ohne ihn mit den Methoden der XmlConvert-Klasse vor der Ausgabe in einen Zeichenfolgenwert konvertieren zu müssen.
Schreiben von typisierten Werten
Die WriteValue-Methode konvertiert ein CLR-Objekt gemäß den Konvertierungsregeln für XSD-Datentypen (XML Schema Definition Language) in den gewünschten Ausgabetyp. Wenn das CLR-Objekt ein Listentyp ist (z. B. IEnumerable, IList oder ICollection), wird es wie ein Array des Werttyps behandelt.
Beim Aufruf der WriteValue-Methode konvertiert der XmlWriter den Wert gemäß den Konvertierungsregeln für XSD-Datentypen in die entsprechende Zeichenfolgendarstellung und schreibt ihn mit der WriteString-Methode.
Ausgeben als Text
Beim Aufruf von WriteValue wird der typisierte Wert gemäß der XmlConvert-Regeln für diesen Schematyp als Text serialisiert.
CLR-Typ |
XML-Schema-Standarddatentyp (XSD) |
|---|---|
System.Boolean |
xsd:boolean |
System.Byte** |
xsd:integer |
System.Byte[] |
xsd:base64Binary |
System.Char** |
xsd:string |
System.DateTime |
xsd:dateTime |
System.Decimal |
xsd:decimal |
System.Double |
xsd:double |
System.Int16** |
xsd:integer |
System.Int32 |
xsd:integer |
System.Int64 |
xsd:integer |
System.Single |
xsd:float |
System.String |
xsd:string |
System.IO.TextReader |
xsd:string |
System.IO.BinaryReader |
xsd:base64Binary |
**Diese Typen sind nicht CLS-kompatibel. Es gibt für sie keine entsprechende Methode in der XmlReader-Klasse.
Hinweis |
|---|
Wenn WriteValue mehrmals hintereinander aufgerufen wird, werden die Werte nicht durch Leerzeichen getrennt.Wenn Leeraum eingefügt werden soll, müssen Sie zwischen Aufrufen von WriteValue die WriteWhitespace-Methode aufrufen. |
Schreiben in einen XML-Datenspeicher
Mit dem XmlWriter kann in einen XML-Datenspeicher geschrieben werden. Die XPathNavigator-Klasse kann z. B. ein XmlWriter-Objekt erstellen, das Knoten für ein XmlDocument-Objekt erstellt.
Wenn der Datenspeicher auf Schemainformationen zurückgreifen kann, löst die WriteValue-Methode eine Ausnahme aus, wenn versucht wird, mit dem WriteValue-Aufruf in einen unzulässigen Typ zu konvertieren.
Wenn der Datenspeicher keine Schemainformationen besitzt, behandelt die WriteValue-Methode alle Werte als xsd:anySimpleType-Typ.
Beispiel
Im folgenden Beispiel wird der Preis eines Buchs um 15 % erhöht, bevor der Preis geschrieben wird. Die Schemainformationen stammen vom Reader, der ein validierendes XmlReader-Objekt darstellt.
reader.ReadToDescendant("price")
writer.WriteStartElement("price")
writer.WriteValue(reader.ReadElementContentAsDouble() * 1.15)
writer.WriteEndElement()
reader.ReadToDescendant("price");
writer.WriteStartElement("price");
writer.WriteValue((reader.ReadElementContentAsDouble()) * 1.15);
writer.WriteEndElement();
Hinweis