如何在vb.net中使用xsd模式生成带点(。)的xml标记?

时间:2014-07-15 06:46:34

标签: xml vb.net xsd

我将在理货软件中为分类帐生成xml。为此,我创建了一个xsd文件..在计数分类帐xml中, 一些标签是用点生成的。例如

我遵循以下编码:

<xs:complexType name="Ledger1">
   <xs:element minOccurs="1" maxOccurs="unbounded"  name="BLOOD.GROUPS"
   type="BLOODGROUPS"/>

   <xs:complexType name="BLOODGROUPS">
    <xs:sequence>
      <xs:element name="BLOODGROUPS"  type="xs:string"/>
      <xs:element name="BLOODGROUPS"  type="xs:string"/>
      <xs:element name="BLOODGROUPS"  type="xs:string"/>
    </xs:sequence>
  </xs:complexType>

使用上面的xsd生成的结果如下

<BLOODGROUPS>
  <BLOOD>A+</BLOOD>
  <BLOOD>B+</BLOOD>
  <BLOOD>O-</BLOOD>
</BLOODGROUPS>

但预期结果是:

<BLOOD.GROUPS>
  <BLOOD>A+</BLOOD>
  <BLOOD>B+</BLOOD>
  <BLOOD>O-</BLOOD>
</BLOOD.GROUPS> 

任何人都可以帮助我如何为上述预期结果声明xsd 在vb.net。我正在使用版本3.5

1 个答案:

答案 0 :(得分:0)

不幸的是,您无法直接将TableName.字符设置在一起。但是,您可以使用DataAdapter填充数据集,然后使用DataSet1.WriteXml("D:\\fileName.xml")方法将该数据集写入xml文件。我使用该方法创建了一个示例文件。

Dim Da As new SqlDataAdapter("Select Query", Connection)
Dim Ds As new DataSet()
Da.Fill(Ds, "Table.Name");
Ds.WriteXml("D:\\tempFile.xml")

示例文件

<?xml version="1.0" standalone="yes"?>
<NewDataSet>
  <Table.Name>
    <CompanyID>1</CompanyID>
    <IndustryID>98</IndustryID>
    <AwardID>MA000012</AwardID>
    <AgreementID>9</AgreementID>
    <CreateUser>1</CreateUser>
    <CreateDate>2014-05-03T14:31:00+05:30</CreateDate>
  </Table.Name>
</NewDataSet>