0

I am creating a utility to convert the Dataset into xsd file. i am Reading data from database and creating dataset For creation of XSD file i am actually creating a Dataset and Datatable and then i am using Dataset.WriteXMLSchema() to write the xsd file.

After my file generated i am getting attribute minoccur =0 for all the elements in my xsd file

Is there is any way by which i can change the minOccur = 2 or can we add Maxoccur also in the same way.??

Below is my code

DataSet MyDataSet = new DataSet("Emp");

    // This can be confusing, the 'DataTable' will actually
    // become Elements (Rows) in the XML file.
    DataTable MyDataTable = new DataTable("Employee_1");

    MyDataSet.Tables.Add(MyDataTable);

    // Make columns attributes so we can 
    // link directly to a GridView
    MyDataTable.Columns.Add(new DataColumn("ID",
                                 typeof(System.Int32),
                                 null,
                                 MappingType.Attribute));

    MyDataTable.Columns.Add(new DataColumn("Name",
                                 typeof(String),
                                 null,
                                 MappingType.Attribute));

    MyDataTable.Columns.Add(new DataColumn("Salary",
                                 typeof(int),
                                 null,
                                 MappingType.Attribute));

    // Write out the XSD
    MyDataSet.WriteXmlSchema(@"C:\Employee.xsd");

I am getting below xsd file

<?xml version="1.0" standalone="yes"?>
  <xs:schema id="Golfers" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="Emp" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
      <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="Employee_1">
            <xs:complexType>
              <xs:attribute name="ID" type="xs:int" />
              <xs:attribute name="Name" type="xs:string" />
              <xs:attribute name="Salary" type="xs:int" />
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
    </xs:element>
  </xs:schema><!--EndFragment-->

i wanted to change the minOccurs and maxOccurs value

4

1 回答 1

1

没有任何方法可以影响内置 DataSet 到 XSD 自定义工具的生成。我建议通过在生成后加载和修改 XSD 来手动对输出进行后处理,如下所述http://support.microsoft.com/kb/318502

于 2013-06-22T20:52:42.940 回答