Salve,

Vi riporto del codice C# che permette di ricavare uno schema da un documento XML:

XmlReaderSettings readersetting = new XmlReaderSettings();
readersetting.ProhibitDtd = false;

XmlReader reader = XmlReader.Create(openFileDialog1.FileName,readerse tting);

XmlSchemaSet schemaSet = new XmlSchemaSet();
XmlSchemaInference schema = new XmlSchemaInference();

schema.Occurrence = XmlSchemaInference.InferenceOption.Restricted;
schema.TypeInference = XmlSchemaInference.InferenceOption.Relaxed;

TextWriter xx = new StringWriter();

schemaSet = schema.InferSchema(reader,schemaSet);

foreach (XmlSchema s in schemaSet.Schemas())
{
s.Write(xx);
richTextBox1.AppendText(xx.ToString());
}

il problema che non riesco a capire è che nella generazione dello schema ci sono dei problemi per quanto riguarda la definizione di maxOccours e minOccours in tutti gli elementi riscontrati.
Ad esempio, nel documento XML viene trovato un solo elemento di nome "book". Il riferimento a questo elemento nello schema viene cosi definito:

<xs:element minOccours="0" name="book" type="xs:string">

altre volte non vengono proprio definiti. Lo stesso problema lo riscontro con il programma xsd.exe di Visual Studio.

Qualcuno può aiutarmi?
Grazie