Lettura e scrittura di uno schema XML
Il modello SOM (Schema Object Model) può essere utilizzato per leggere e scrivere schemi del linguaggio XSD (XML Schema Definition) da file o altre fonti utilizzando le classi XmlTextReader, XmlTextWriter e XmlSchema.
Nel codice di esempio che segue viene illustrata la lettura di uno schema XML da un file, Example.xsd, e la stampa del file sulla console, quindi la scrittura dello schema in un nuovo file, New.xsd.
Imports System.IO
Imports System
Imports System.Xml
Imports System.Xml.Schema
Imports System.Text
Class ReadWriteSample
Public Shared Sub Main()
Try
Dim reader As New XmlTextReader("Example.xsd")
Dim myschema As XmlSchema = XmlSchema.Read(reader, Nothing)
myschema.Write(Console.Out)
Dim file As New FileStream("New.xsd", FileMode.Create, FileAccess.ReadWrite)
Dim xwriter As New XmlTextWriter(file, New UTF8Encoding())
xwriter.Formatting = Formatting.Indented
myschema.Write(xwriter)
Catch e As Exception
Console.WriteLine(e)
End Try
End Sub
End Class
[C#]
using System.IO;
using System;
using System.Xml;
using System.Xml.Schema;
using System.Text;
class ReadWriteSample {
public static void Main() {
try{
XmlTextReader reader = new XmlTextReader ("Example.xsd");
XmlSchema myschema = XmlSchema.Read(reader, null);
myschema.Write(Console.Out);
FileStream file = new FileStream ("New.xsd", FileMode.Create, FileAccess.ReadWrite);
XmlTextWriter xwriter = new XmlTextWriter (file, new UTF8Encoding());
xwriter.Formatting = Formatting.Indented;
myschema.Write (xwriter);
}catch(Exception e){
Console.WriteLine(e);
}
}
}
Lo schema XML che segue evidenzia il contenuto del file di input, Example.xsd.
<?xml version="1.0"?>
<xs:schema id="play"
targetNamespace="http://tempuri.org/play.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/play.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name='myShoeSize'>
<xs:complexType>
<xs:simpleContent>
<xs:extension base='xs:decimal'>
<xs:attribute name='sizing' type='xs:string' />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>