2013-06-04 30 views
0

我是XML新手,需要將XML文件導入Access或Excel 2010.XML文件的多個本地模式

有多個文件需要引用的模式。這是我迄今爲止所做的,並且不起作用。有人可以指出我的方向是正確的嗎?還是我完全錯了?

<?xml version="1.0" encoding="utf-8"?> 
    <xs:schema xmlns="http://www.dcsf.gov.uk/schemas/cbds" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xsi:SchemaLocation="File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Schemas\SC13-CBDS-Standard-Header.XSD 
     File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Schemas\SC13-Spring-PupilModule.XSD 
     File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Schemas\SC13-Spring-SchoolModule.XSD 
     File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Schemas\SchoolCensus13-Spring.XSD 
     File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Includes\bs7666.XSD 
     File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Includes\EstabNoType.XSD 
     File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Includes\LEAtype.XSD 
     File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Includes\PeopleTypes.XSD 
     File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Includes\PupilTypes.XSD 
     File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Includes\SC_Address_Structure.XSD 
     File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Includes\UPNtype.XSD 
     File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Includes\YearTypes.XSD"> 
    <Message> 
    <Name>School Census</Name> 
    <Header> 

回答

0

這裏有幾個問題。

  • 您的XML格式不正確,因此無法確切知道您打算使用何種文檔元素結構。您沒有xs:schema的結束標籤,並且您有一個結束標籤,但沒有header的開始標籤。

    此外,您使用但不綁定命名空間前綴xsi;該前綴通常綁定到XSD「實例」名稱空間。如果這就是你想要的綁定(它幾乎肯定是),你想添加下面的命名空間聲明到你的文檔的根元素。

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    
  • xs:schema元件用於定義模式的部件 - 未附加模式信息,以正常的XML實例。它由XSD規範定義,並且Messageheader都不屬於任何有效的xs:schema元素的子元素。

  • XML實例和模式之間的鏈接可以使用xsi:schemaLocation屬性(注意拼寫!)來表示。用於爲給定的XML元素指定可以在該元素內使用的名稱空間的模式。

  • xsi:schemaLocation的值是(namespace-name,schema-document-URI)對的序列;您的當前值似乎只是模式文檔的文件系統路徑列表,其中沒有一個是URI。

  • 此外,通常的做法是將名稱空間的一個頂級模式文檔(驅動程序文件)(直接或間接)引用到該名稱空間的所有其他名稱空間。您的xsi:schemaLocation屬性應該指向該驅動程序文件,而不是命名空間的其他模式文檔。所以,我期望在你的XML輸入是這樣的:

    <header xmlns="http://www.dcsf.gov.uk/schemas/cbds" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:SchemaLocation="http://www.dcsf.gov.uk/schemas/cbds 
        file:///ecsdcen2/Vol1/Groups/PIMD/Projects/ICYP%20Projects/ICYP%20-%20School%20Census/2013/January%202013/Source/School%20Census/Schemas/cbds-driver.xsd"> 
        ... 
    </header> 
    

如果你的目標是儘可能快,你可以得到XML我們進入一些其他形式的數據,然後讓所有這些細節的XML和XSD正確(只是爲了獲得XML的數據)可能有點乏味;我會找到一位本地的XML/XSD專家,併爲他們提供免費飲品,直到他們同意幫助你。

+0

謝謝,我已經聯繫了DfE,看看有沒有人幫助我。沒有明顯的驅動程序xsd,所以我會試着抓住那個構建它的人。 –