以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  如何按照schema来生成详细的数据记录集  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=49287)


--  作者:l80d
--  发布时间:7/2/2007 10:17:00 AM

--  如何按照schema来生成详细的数据记录集
现有schema如下:
<?xml version="1.0" standalone="yes"?>
<xs:schema id="IdBuilderDataSet" targetNamespace="http://tempuri.org/IdBuilderDataSet.xsd" xmlns:mstns="http://tempuri.org/IdBuilderDataSet.xsd" xmlns="http://tempuri.org/IdBuilderDataSet.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified">
  <xs:element name="IdBuilderDataSet" msdata:IsDataSet="true">
    <xs:complexType>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="Settings">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Identifier" type="xs:string" />
              <xs:element name="Name" type="xs:string" minOccurs="0" />
              <xs:element name="Value" type="xs:string" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="CodeDefinitions">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Identifier" type="xs:string" />
              <xs:element name="Name" type="xs:string" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Codes">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Identifier" type="xs:string" />
              <xs:element name="Name" type="xs:string" minOccurs="0" />
              <xs:element name="Index" type="xs:int" minOccurs="0" />
              <xs:element name="IsTemplate" type="xs:boolean" minOccurs="0" />
              <xs:element name="CodeDefinitionIdentifier" type="xs:string" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="CodeParts">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Identifier" type="xs:string" />
              <xs:element name="Index" type="xs:int" minOccurs="0" />
              <xs:element name="Value" type="xs:string" minOccurs="0" />
              <xs:element name="Type" type="xs:int" minOccurs="0" />
              <xs:element name="MinSize" type="xs:int" minOccurs="0" />
              <xs:element name="CodeIdentifier" type="xs:string" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Counters">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Identifier" type="xs:string" />
              <xs:element name="Ref" type="xs:int" minOccurs="0" />
              <xs:element name="Type" type="xs:int" minOccurs="0" />
              <xs:element name="Quantity" type="xs:int" minOccurs="0" />
              <xs:element name="Source" type="xs:string" minOccurs="0" />
              <xs:element name="SourceArgument" type="xs:string" minOccurs="0" />
              <xs:element name="CodeDefinitionIdentifier" type="xs:string" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
    <xs:unique name="PK_Settings" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:Settings" />
      <xs:field xpath="mstns:Identifier" />
    </xs:unique>
    <xs:unique name="PK_CodeDefinitions" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:CodeDefinitions" />
      <xs:field xpath="mstns:Identifier" />
    </xs:unique>
    <xs:unique name="PK_Codes" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:Codes" />
      <xs:field xpath="mstns:Identifier" />
    </xs:unique>
    <xs:unique name="PK_CodeParts" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:CodeParts" />
      <xs:field xpath="mstns:Identifier" />
    </xs:unique>
    <xs:unique name="PK_Counters" msdata:PrimaryKey="true">
      <xs:selector xpath=".//mstns:Counters" />
      <xs:field xpath="mstns:Identifier" />
    </xs:unique>
    <xs:keyref name="Rel_CodeDefinition_Counters" refer="PK_CodeDefinitions">
      <xs:selector xpath=".//mstns:Counters" />
      <xs:field xpath="mstns:CodeDefinitionIdentifier" />
    </xs:keyref>
    <xs:keyref name="Rel_Code_CodeParts" refer="PK_Codes">
      <xs:selector xpath=".//mstns:CodeParts" />
      <xs:field xpath="mstns:CodeIdentifier" />
    </xs:keyref>
    <xs:keyref name="Rel_CodeDefinition_Codes" refer="PK_CodeDefinitions">
      <xs:selector xpath=".//mstns:Codes" />
      <xs:field xpath="mstns:CodeDefinitionIdentifier" />
    </xs:keyref>
  </xs:element>
</xs:schema>


里面具体的数据集排列顺序如下(参照目标文件):
<settings>
<CodeDefinitions>
<Codes>
<CodeParts>
<Counters>

怎么样才能对生成的XML文件:
[URL=http://www.szqyjy.com/TEMP/XML.rar]生成XML的目标文件[/URL]



--  作者:hjx_221
--  发布时间:7/2/2007 1:09:00 PM

--  
thanks

i 'll try it


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms