Question

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

Was it helpful?

Solution

There are no methods to influence the generation of the built in DataSet to XSD Custom Tool. I'd recommend to post-process the output manually by loading and modifying the XSD after generation like described here http://support.microsoft.com/kb/318502.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top