2012-12-14 72 views
1

問題:我創建了一個包含符合atom 1.0模式的數據的示例xml文檔。當我在PowerPivot中導入此文件的內容(用於測試目的)時,它會爲每個條目中的每個原子元素創建列,而不是爲每個內容元素創建一列。爲什麼是這樣?在PowerPivot中導入自定義Atom feed

背景:客戶希望從Web服務導入數據,該服務提供使用PowerPivot不支持的自定義XML模式的提要。該服務提供了調用者提供將應用於該提要的XSLT模板的能力。我希望能夠將此Feed轉換爲有效的原子提要,從而允許客戶將數據導入PowerPivot。

樣品原子的xml:

<?xml version="1.0" encoding="UTF-8"?> 
<feed xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
     xmlns="http://www.w3.org/2005/Atom" 
     xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"> 
    <title type="text">My Data Feed</title> 
    <id>http://temp/feed</id> 
    <updated>2012-12-13T00:00:00Z</updated> 
    <entry> 
     <id>http://temp/feed/1</id> 
     <title type="text">Title</title> 
     <author> 
     <name>Author</name> 
     </author> 
     <updated>2012-12-13T00:00:00Z</updated> 
     <content type="application/xml"> 
     <d:Name>John Smith</d:Name> 
     <d:Address>Address</d:Address> 
     <d:Zip>1234</d:Zip> 
     </content> 
    </entry> 
</feed> 

當導入的PowerPivot(選擇 「從數據饋送」,點擊 「瀏覽」,並指出XML文件),它看起來像這樣:

PowerPivot import result

我正在檢查三欄:姓名,地址和郵編。如果我在自動錯誤更改「包含原子元素」在連接配置中,沒有列導入。

回答

2

看來我只是錯過了m:properties元素。最終結果 - 還包括空屬性和數據類型的示例:

<?xml version="1.0" encoding="UTF-8"?> 
<feed xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
     xmlns="http://www.w3.org/2005/Atom" 
     xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"> 
    <title type="text">My Data Feed</title> 
    <id>http://temp/feed</id> 
    <updated>2012-12-13T00:00:00Z</updated> 
    <entry> 
     <id>http://temp/feed/1</id> 
     <title type="text">Title</title> 
     <author> 
     <name>Author</name> 
     </author> 
     <updated>2012-12-13T00:00:00Z</updated> 
     <content type="application/xml"> 

     <!-- attributes placed under the properties element --> 
     <m:properties> 
      <d:Name>John Smith</d:Name> 
      <d:Address>Address</d:Address> 
      <d:Zip m:type="Edm.Int32">1234</d:Zip> 
      <d:Comment m:null="true" /> 
     </m:properties> 

     </content> 
    </entry> 
</feed>