Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从XML引用的数据集创建XSD和XML文档XSD将XML导入excel_Xml_Vb.net_Xsd_Xml Namespaces - Fatal编程技术网

从XML引用的数据集创建XSD和XML文档XSD将XML导入excel

从XML引用的数据集创建XSD和XML文档XSD将XML导入excel,xml,vb.net,xsd,xml-namespaces,Xml,Vb.net,Xsd,Xml Namespaces,很长的标题,但希望我能解释我在追求什么。我已经阅读并在谷歌上搜索了大量xml文档,但还没有找到我想要做什么的答案。我试图创建一个XSD文档,为数据集中的字段生成显式类型定义。然后,我尝试创建一个示例XML文档,以验证XSD文档 这在VisualStudio内部运行良好,因为我可以读入模式和文档并进行验证,但创建的xml文档没有通过xlmns或其他方法对XSD进行真正的引用。如果我想在MS Excel中使用这个xml数据,并且我尝试导入它,那么我不知道XSD在哪里进行验证,所以它假设它基于这些值。

很长的标题,但希望我能解释我在追求什么。我已经阅读并在谷歌上搜索了大量xml文档,但还没有找到我想要做什么的答案。我试图创建一个XSD文档,为数据集中的字段生成显式类型定义。然后,我尝试创建一个示例XML文档,以验证XSD文档

这在VisualStudio内部运行良好,因为我可以读入模式和文档并进行验证,但创建的xml文档没有通过xlmns或其他方法对XSD进行真正的引用。如果我想在MS Excel中使用这个xml数据,并且我尝试导入它,那么我不知道XSD在哪里进行验证,所以它假设它基于这些值。如果要解决这个问题,我的代码中有没有办法将XLMN同时添加到XSD和XML中

 Dim MyDataSet As New DataSet("Samples")

    Dim MyDataTable As New DataTable("Sample")

    MyDataSet.Tables.Add(MyDataTable)

    MyDataTable.Columns.Add(New DataColumn("blnExample", GetType(Boolean), Nothing, MappingType.Element))
    MyDataTable.Columns.Add(New DataColumn("datExample", GetType(DateTime), Nothing, MappingType.Element))
    MyDataTable.Columns.Add(New DataColumn("decExample", GetType(Decimal), Nothing, MappingType.Element))
    MyDataTable.Columns.Add(New DataColumn("dblExample", GetType(Double), Nothing, MappingType.Element))
    MyDataTable.Columns.Add(New DataColumn("intExample", GetType(Integer), Nothing, MappingType.Element))
    MyDataTable.Columns.Add(New DataColumn("lngExample", GetType(Long), Nothing, MappingType.Element))
    MyDataTable.Columns.Add(New DataColumn("sglExample", GetType(Single), Nothing, MappingType.Element))
    MyDataTable.Columns.Add(New DataColumn("strExample", GetType(String), Nothing, MappingType.Element))

    ' Write out the XSD

    MyDataSet.WriteXmlSchema(Server.MapPath("~\xml\MySchema.xsd"))

    ' Put some data in the table
    Dim TempRow As DataRow

    For i As Integer = 1 To 3

        TempRow = MyDataTable.NewRow()
        TempRow("blnExample") = True
        TempRow("datExample") = New DateTime(2012, 2, 29)
        TempRow("decExample") = 1
        TempRow("dblExample") = 2
        TempRow("intExample") = 3
        TempRow("lngExample") = 4
        TempRow("strExample") = "Example"
        MyDataTable.Rows.Add(TempRow)
    Next
    ' Write out the data        

    MyDataSet.WriteXml(Server.MapPath("~\xml\MyData.xml"))

通过在
数据集
实例上设置
名称空间
属性,可以将名称空间添加到两个文档中:

MyDataSet.Namespace = "http://www.example.com/"
这将导致您的架构具有目标命名空间:

<xs:schema targetNamespace="http://www.example.com/" ... >
<Sample xmlns="http://www.example.com/">

以及引用该命名空间的实例文档:

<xs:schema targetNamespace="http://www.example.com/" ... >
<Sample xmlns="http://www.example.com/">