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![]()