2010-08-08 113 views
0

有沒有辦法從下面的XML文件創建一個XSD文件?我已經嘗試過各種工具,但都生成多個XSD文件。什麼是多個XSD文件的原因?我只需要一個XSD文件在SSIS中加載。從XML文件創建SINGLE XSD模式文件?

<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882' 
    xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882' 
    xmlns:rs='urn:schemas-microsoft-com:rowset' 
    xmlns:z='#RowsetSchema'> 
<s:Schema id='RowsetSchema'> 
    <s:ElementType name='row' content='eltOnly'> 
     <s:AttributeType name="c0" rs:name="FIRST_NAME" rs:number="1" rs:nullable="true"> 
      <s:datatype dt:type="string" rs:dbtype="str" dt:maxLength="30"/> 
     </s:AttributeType> 
     <s:AttributeType name="c1" rs:name="MIDDLE_NAME" rs:number="2" rs:nullable="true"> 
      <s:datatype dt:type="string" rs:dbtype="str" dt:maxLength="30"/> 
     </s:AttributeType> 
     <s:AttributeType name="c2" rs:name="LAST_NAME" rs:number="3"> 
      <s:datatype dt:type="string" rs:dbtype="str" dt:maxLength="60" rs:maybenull="false"/> 
     </s:AttributeType> 
     <s:AttributeType name="c3" rs:name="OTHER_ID" rs:number="4" rs:nullable="true"> 
      <s:datatype dt:type="string" rs:dbtype="str" dt:maxLength="24"/> 
     </s:AttributeType> 
     <s:AttributeType name="c4" rs:name="FS_LUN_CODE_ID" rs:number="5" rs:nullable="true"> 
      <s:datatype dt:type="string" rs:dbtype="str" dt:maxLength="2"/> 
     </s:AttributeType> 
     <s:AttributeType name="c5" rs:name="FS_NAME_ID_PAYOR" rs:number="6" rs:nullable="true"> 
      <s:datatype dt:type="int" dt:maxLength="4" rs:precision="10" rs:fixedlength="true"/> 
     </s:AttributeType> 
     <s:AttributeType name="c6" rs:name="FS_TRAN_TIME" rs:number="7" rs:nullable="true"> 
      <s:datatype dt:type="int" dt:maxLength="4" rs:precision="10" rs:fixedlength="true"/> 
     </s:AttributeType> 
     <s:AttributeType name="c7" rs:name="NAME_ID" rs:number="8"> 
      <s:datatype dt:type="int" dt:maxLength="4" rs:precision="10" rs:fixedlength="true" rs:maybenull="false"/> 
     </s:AttributeType> 
     <s:AttributeType name="c8" rs:name="FS_TRAN_DATE" rs:number="9" rs:nullable="true"> 
      <s:datatype dt:type="date" dt:maxLength="6" rs:fixedlength="true"/> 
     </s:AttributeType> 
     <s:extends type="rs:rowbase"/> 
</s:ElementType> 
</s:Schema> 
<rs:data> 
    <z:row c0='SHELLI' c1='A' c2='AANENSON' c3='671590' c4='N' c5='0' c6='32885' c7='12' c8='2007-09-11'/> 
    <z:row c0='SHELLI' c1='A' c2='AANENSON' c3='671590' c4='N' c5='0' c6='32885' c7='12' c8='2007-09-11'/> 
    <z:row c0='SHELLI' c1='A' c2='AANENSON' c3='671590' c4='N' c5='0' c6='32885' c7='12' c8='2007-09-11'/> 
    <z:row c0='SHELLI' c1='A' c2='AANENSON' c3='671590' c4='N' c5='0' c6='32885' c7='12' c8='2007-09-11'/> 
    <z:row c0='WILLIAM' c1='' c2='AASEN' c3='916031' c4='N' c5='0' c6='55833' c7='13' c8='2007-07-27'/> 
    <z:row c0='WILLIAM' c1='' c2='AASEN' c3='916031' c4='N' c5='0' c6='55833' c7='13' c8='2007-07-27'/> 
    <z:row c0='WILLIAM' c1='' c2='AASEN' c3='916031' c4='N' c5='0' c6='55833' c7='13' c8='2007-07-27'/> 
</rs:data> 
</xml> 

回答

3

的多個XSD文件的原因是,你有兩個架構命名空間:

uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882 
uuid:C2F41010-65B3-11d1-A29F-00AA00C14882 

每個命名空間中的一個將在一個單獨的XSD架構文件中定義 - 我不知道的組合這兩個模式文件的任何方式(即有一個xsd模式目標多個命名空間)。

雖然如何使用SSIS執行此操作,但我不確定如何將多個模式文件組合到模式集中。

更簡單的解決方案可能是組合命名空間而不是使用兩個命名空間。

+0

謝謝,但我將如何結合這兩個名稱空間?目前一個用於「s」,另一個用於「dt」。 – salvationishere 2010-08-08 03:34:07

+0

@salvationishere - 通過組合我的意思是擺脫一個名稱空間(例如,帶有「dt」前綴的名稱空間)並使用現有的名稱空間/前綴。這可能不是一個合適的方法,但取決於您的數據。 – Justin 2010-08-08 03:57:47