在xsd中创建数据集关系

时间:2014-06-26 17:57:39

标签: xml xsd sqlxml

我真的需要帮助创建一个xsd,我是xml的新手并搜索但无法弄清楚问题是什么。我需要创建这个模式,以便稍后我可以将它们上传到两个表Tmp_Action和tmp_Domains。 ActionGUID是tmp_Domain的外键。

以下是我的示例数据:

<ROOT>
  <Action>
  <GUID>68e29804-299e-4dc5-a22e-b652be5de8f1</GUID>
  <ActionType>Scan</ActionType>
  <StartTime>2014-06-13T16:02:27</StartTime>
  <EndTime>2014-06-14T05:27:37</EndTime>
  <Domain>
    <Name>DEVTEST</Name>
    <ParentName></ParentName>
    <DNSRoot>abcd</DNSRoot>
    <NCName>efgh</NCName>
    <TreeName></TreeName>
    <DisplayName></DisplayName>
    <WhenChanged>2014-04-01T08:03:45</WhenChanged>
    <USNChanged>16411</USNChanged>
  </Domain>
</Action>

</ROOT>

这是我正在创建的架构:

    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
  <xsd:annotation>
    <xsd:appinfo>
      <sql:relationship name="ActionActionDomain"
          parent="Action"
          parent-key="GUID"
          child="Domain"
          child-key="ActionGUID" />
    </xsd:appinfo>
  </xsd:annotation>

  <xsd:element name="ROOT" sql:is-constant="1" >
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Action" sql:relation="Tmp_Action" >
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="GUID" type="xsd:string" />
              <xsd:element name="ActionType" type="xsd:string" />
              <xsd:element name="StartTime" type="xsd:dateTime" />
              <xsd:element name="EndTime" type="xsd:dateTime" />

              <xsd:element name="Domain"
                    sql:relation="ActionDomain"
                    sql:relationship="ActionActionDomain" >
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="Name" type="xsd:string" />
                    <xsd:element name="ParentName" />
                    <xsd:element name="DNSRoot" type="xsd:string" />
                    <xsd:element name="NCName" type="xsd:string" />
                    <xsd:element name="TreeName" />
                    <xsd:element name="DisplayName" />
                    <xsd:element name="WhenChanged" type="xsd:dateTime" />
                    <xsd:element name="USNChanged" type="xsd:unsignedShort" />
                  </xsd:sequence>


                </xsd:complexType>
              </xsd:element>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>

      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

我得到的错误是'Domain'上关系的父/子表不匹配。

任何人都可以帮我这个吗? 非常感谢!

0 个答案:

没有答案