/// <summary>
/// crée le schéma xml correspondant au fichier xml en entrée
/// </summary>
/// <param name="InputUri">le chemin vers le fichier xml</param>
/// <param name="Path">le chemin de sortie vers le schéma xml à créer</param>
private static void CreateXmlSchema(string InputUri, string Path)
{
System.Xml.XmlReader oXmlReader = System.Xml.XmlReader.Create(InputUri);
System.Xml.Schema.XmlSchemaSet oXmlSchemaSet = new System.Xml.Schema.XmlSchemaSet();
System.Xml.Schema.XmlSchemaInference oXmlSchemaInference = new System.Xml.Schema.XmlSchemaInference();
oXmlSchemaSet = oXmlSchemaInference.InferSchema(oXmlReader);
System.IO.TextWriter red = new System.IO.StreamWriter(Path);
foreach (System.Xml.Schema.XmlSchema oXmlSchema in oXmlSchemaSet.Schemas())
{
oXmlSchema.Write(red);
}
}
Remarque :
exemple d'utilsation :
CreateXmlSchema(System.IO.Path.Combine(Application.StartupPath,"Contacts.xml"),"c:/test.xsd");
/// <summary>
/// crée le schéma xml correspondant au fichier xml en entrée
/// </summary>
/// <param name="InputUri">le chemin vers le fichier xml</param>
/// <param name="Path">le chemin de sortie vers le schéma xml à créer</param>
private sub CreateXmlSchema(string InputUri, string Path)
Dim oXmlReader As Xml.XmlReader = Xml.XmlReader.Create(InputUri)
Dim oXmlSchemaSet As Xml.Schema.XmlSchemaSet = New Xml.Schema.XmlSchemaSet
Dim oXmlSchemaInference As System.Xml.Schema.XmlSchemaInference = New Xml.Schema.XmlSchemaInference
oXmlSchemaSet = oXmlSchemaInference.InferSchema(oXmlReader)
Dim red As IO.TextWriter = New IO.StreamWriter(Path)
For Each oXmlSchema As System.Xml.Schema.XmlSchema In oXmlSchemaSet.Schemas
oXmlSchema.Write(red)
Next
End sub
Remarque :
Juste une conversion du code de romagny13