salut,

J'aimerais appliquer un schéma Xml à un DataSet.

mySchema.xsd:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
...
<xs:complexType name="level1">
    <xs:sequence>
      <xs:element name="level2" type="level2" minOccurs="1" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
 
  <xs:complexType name="level2">
    <xs:sequence>
      <xs:element name="level3.1" type="level3.1" minOccurs="0" maxOccurs="1" />
      <xs:element name="level3.2" type="level3.2" minOccurs="0" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="type" type="xs:string" use="required" />
    <xs:attribute name="observationType" type="xs:string" use="required" />
    <xs:attribute name="dateFunctionType" type="xs:string" use="required" />
    </xs:sequence>
  </xs:complexType>
...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
this.dataSet.ReadXmlSchema(@"C:\mySchema.xsd");
Le problème est que mon schéma n'est pas pris en compte. Lorsque je compte je nombre de tables, le résultat = 0.
Or si j'insère des données dans le DataSet via un XmlReader, (exactement selon les même règles que le schéma), et que je demande à voir à quoi ressemble le schéma auto-créé, ce dernier est décrit de facon procédurale (cad : description niveau par niveau, de facon un peu primaire).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
this.dataSet.ReadXml(xmlReader);
this.dataSet.WriteXmlSchema("C:/generatedSchema.xsd");
generatedSchema.xsd :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
<xs:element name="level1" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="level2">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="level3.1" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="3.1.1" minOccurs="0" maxOccurs="unbounded">
...
Evidemment, si j'applique ce schéma auto-créé à) mon dataset, ca fonctionne bien (nombre de table ok). Mais je ne peut pas adopter ce type d'écriture de schéma.

Est ce que quelqu'un saurait comment est ce que je peux appliquer mon schéma original, sans le reformater, à mon Dataset?

merci