TWI334551B - Method and computer-readable medium for improting and exporting hierarchically structured data - Google Patents

Method and computer-readable medium for improting and exporting hierarchically structured data Download PDF

Info

Publication number
TWI334551B
TWI334551B TW092133100A TW92133100A TWI334551B TW I334551 B TWI334551 B TW I334551B TW 092133100 A TW092133100 A TW 092133100A TW 92133100 A TW92133100 A TW 92133100A TW I334551 B TWI334551 B TW I334551B
Authority
TW
Taiwan
Prior art keywords
data
content
electronic file
file
api
Prior art date
Application number
TW092133100A
Other languages
English (en)
Other versions
TW200422881A (en
Inventor
Walter David Pullen
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of TW200422881A publication Critical patent/TW200422881A/zh
Application granted granted Critical
Publication of TWI334551B publication Critical patent/TWI334551B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Description

1334551
【發明所屬之技術領域】 本發明係關於一種用以匯入及匯出層級式結構資料之 方法及電腦可讀取媒體。 【先前技術】 電腦軟體應用可讓使用者產生含有按層級式結構所組 鐵之資料之文4 ’像是試算表、日曆、銀行對帳單、產品 列表、綱要等,以與其他使用者在電腦網路上進行交換。 例如’使用者可利用「可延伸標記語言(XML)」程式來產 生文件,以於運用不同格式之電腦系統間交換層級式資 枓。XML文件具有使用者可定義描述性標籤,可在其内接 合所含資料’讓廣泛各種電腦能夠了解該資料。可僅利用 别析該等承載有描述性(description·bearing)的標籤,從該 文件匯入該資料以供使用者觀看。在觀看該資料後,使用 者可再將該資料匯出至一新或可編輯層級式格式化文件以 傳送給其他使用者。 然而,剖析一文件係一緩慢且複雜程序,這會要求數項 步驟。目前的一些剖析器,如「Simple API for XML (SAX)」,屬事件基礎式剖析器,其t會逐個而循序地讀取 XML標籤》不過使用者會被要求保持狀態,且搜尋整個檔 案以找到所要的XML標籤。其他的剖析器,像是「D〇cument Object Model (DOM)」屬樹狀物基礎式,這會將一整個 檔案載入到記憶體内,且可供隨機存取,如此令其比起事 5 1334551 件基礎式剖析器確較容易尋得所要的 XML標籤。不過, 樹狀物基礎式要求巡覽整個樹狀物以尋得所要的 XML標 籤。此外,這些剖析器會耗佔顯著大量的時間及記憶體, 使得彼等對於剖析大型的XML檔案並不實用。 因此,目前並無簡易方式以從一層級式結構文件匯入資 料。亦即,並無簡易方式以針對含有一使用者所要的資料 之特定標籤或節段,選擇性地搜尋該文件,而無可避免須 藉如SAX之事件基礎式剖析器來搜尋整個文件,或藉像是 DOM之樹狀物基礎物剖析器而必須巡覽該樹狀物且同時 耗用顯著的時間及記憶體資源。 類似地,像是DOM的樹狀物基礎式剖析器(這會將整個 檔案儲存於記憶體内),可匯出子樹狀物或其他層級式資 料,這些剖析器會受到該等剖析器固有之顯著耗用時間及 記憶體資源的問題所限制。 因此,業界需要一種方法及系統,以於一層級式結構文 件内,選擇性地匯入及匯出内容。本發明係為有關此等及 其他考量。 【發明内容】 本發明提供一種方法及系統,用以在一電子文件内,選 擇性地匯入及匯出資料。在一具體實施例裡,提供有一用 以從一電子文件選擇性地匯入内容之方法。接收一其資料 係按層級式檔案結構所排置之電子文件。該層級式檔案結 構可為XML。該電子文件内的資料包含關聯於該資料之内 1334551 容。該資料可包含XML元件、屬性、節點及文字。來自 該文件的特定資料係被標定而被匯入;並且對該標定資料 執行一動作以匯入該關聯内容。該動作可包括剖析該標定 資料的文件,並且擷取關聯於該標定資料之内容的各個項 目〇 在本發明另一具體實施例裡,提供一用以從一電腦系統 内的一來源匯出資料以產生一電子文件之方法。會將從該 電腦系统内的一來源所接收的標定資料匯出以產生該電子 文件。所產生的電子文件可具有像是XML的層級式檔案 結構。所產生的電子文件可包含XML元件、屬性及節點。 該來源可為一該電腦系統内的客戶端或伺服器。可將該資 料匯出至一資料串流、記憶體緩衝器或一檔案。 本發明各具體實施例亦提供電腦可讀取媒體,以選擇性 地將資料匯入及匯出於一電子文件内。關於本發明各式特 點的額外細節,自後載之本發明詳細說明而為顯見。 【實施方式】 本發明一具體實施例之後載說明係參照於後各圖式。本 發明係關於一用在一電子文件内匯入及匯出層級式結構資 料的方法及系統。 操作環境 第1圖及後列討論係為提供一可實作本發明之適當計 算環境的簡要、廣義描述。本發明雖將按一併同一個人電 7 Γ334551 腦而執行於一作業系統上之應用程式介面的廣義情境所敘 述,然熟諳本項技藝之人士應即瞭解本發明亦可組合於其 他程式模組而實作。一般說來’程式模組包括可執行特定 工作或實作特定抽象資料型態的副程式(r〇utine)、程式、 元件、資料結構等。此外,熟諳本項技藝之人士應即瞭解 可藉其他電腦系統組態,包括手持式裝置、多重處理器系 統、以微處理器為基礎式或可程式消費性電子、行動電話、 迷你電腦、主機電腦等等來而實作本發明。本發明也可按 刀散式計算環境而實作’其中可由藉一通訊網路所鏈接之 遠端處理裝置執行各項工作。在一分散式計算環境裡,各 程式模組可位於本地及遠端記憶體儲存裝置兩者處。 現請參照第1圖,一用以實作本發明之示範性系統,其 中習知個人電腦2〇,此者包含一處理單元21、一系統記憶 體 2 9 I、,τ» 从及一將系統記憶體耦接至該處理單元21的系統匯 °該系統記憶體22包含唯讀記憶體(ROM) 24及隨 换户 子取記憶體(RAM) 25。一含有基本副程式以協助如在開 機過程中於該個人電腦20内之各元件間傳送資訊的基本 輪入/輪出系統26 (BIOS)會被存放在ROM 24内。該個人 電腦 2 π ^更包含一硬碟機27、一即如向一可移除碟片29進 行讀® + 兩之磁碟機28、以及一即如可從一 CD-ROM碟片31 ° %對一其他光學媒體進行讀寫之光碟機75。該硬碟機 嗜噪機28及光碟機75會分別地連接於一硬碟機介面 3 2、
—磁碟機介面33及一光碟機介面34»這些碟機與該 等關聯Φ IKK *1更腦可讀取媒體可提供作為該個人電腦2〇的非揮 8 1334551 發性儲存 可移除磁 即瞭解亦 型態媒體 卡s等等 可將^ 内,包括 其他種類 以及其他 使用4 指令及資 示出)可姿 等。這些 而連接到 可藉其他 排(USB) 介面,像 除監視器 邊輸出裝 該電月ί 端電腦的 可為一伺 點,且通1 件,然在 研。荊述電腦可讀取媒 碟及一CD-ROM碟片,然熟諳本項技藝之:士應 可在本示範性操作環境内運用電腦可讀取之其他 ’像是磁匣1閃記憶卡、數位視訊碟、Ben。仙 故個程式模組儲存在各碟機(drives;^ 以 -作業系,统35、一或更多像是一文書處理程式(或 的程式)之應用程式37、匯入ΑΡΙ30、匯出Αρΐ4〇 的程式模組(未示出)。 ^可透過一鍵盤76及像是滑鼠42之指標裝置,將 訊輸入於該個人電腦20内。其他的輪入裝置(未 L含一麥克風、搖桿、遊戲板、衛星碟、掃描器等 及其他輸入裝置通常會經由一序列機埠介面耗 該處理單元21,該介面耦接於該系統匯流排,但 介面所連接,像是一遊戲機埠或—诵 廸用序列匯流 。一監視器47或其他種類顯示器裝置亦可透過一 -’ ·,〜~風更 邏輯連線而運作於一網路環境内。該遠端裝 服器、一路由器、一端點裝置或其他常用網 f包含多項或所有如前文關聯於該電腦2〇而 該第1圖内僅說明一記憶體儲存裝置5〇。如
是一視訊配接卡48 ’而連接於該系統匯流排。 外,電腦通常會包含其他像是^及£卩表機_ 置(未示出)。
9 1334551 圖所述的邏輯連線包括-區域網路(LAN) 51卩一廣域網 路(WAN) 52。迫種網路環境常見於辦公室、企業界電腦網 路、企業内網路及網際網路。 田用於一LAN網路環境内時,該電腦2〇係透過—網路 介面或配接器53而連接於該lan 51。當用於一 WAN網 路裒境内時’該電腦2〇通常會包含一數據機54或任何其 種類的通訊裝置以供於該WAN 52,像是網際網路,建 立通訊。該數據機54,這可為内插式或外接式可經由該 序列機埠介面46而連接於該系統匯流排23。在一網路環 *見下,可將關聯於該電腦2〇或其局部而描述之程式模組, 儲存在該遠端記憶體儲存裝置内。應了解這些所繪網路連 線屬不範性,且確可運用其他用以在各電腦間建立一通訊 鏈路的通訊裝置方法。 操作 第2圖係一區塊圖,此圖描述一併用於本發明具體實施 例之說明性軟體架構2〇〇。該架構包含一匯入應用程式介 面(API) 3 〇 ’以從具有依照一層級式檔案結構所排置的資 料之一電子文件匯入内容。在一具體實施例裡,該電子文 件係一由與該内容之各式項目關聯的標籤、屬性及節點(子 樹狀物)所組成之XML文件。在此僅屬本揭發明之範例而 非為其限制,底下係一其上可實作出該API 30之說明性 XML檔案: 〈SOAP-ENViEnvelope xmlns:SOAP-ENV=llhttp://schemas.xmlsoap.org/soap/envelope/,,> 10 1334551 <SOAP-ENV:Body> <CancelResponse xmlns=flhttp://schemas.microsoft.com/billmgH> <Services> 〈Service Name="Some service"/> <!— More Services here —> </Services> 〈Subscriptions〉 〈Subscription ID=nSubscription IDn> <B alancelmpacts>
〈Balancelmpact ImpactType=”Type ofimpact"〉 <Amount>Non-zero amount ofimpact</Amount> </BalanceImpact> <!— More Balance Impacts here —> </BalanceImpacts> 々Subscription〉 <!— More Subscriptions here —> </Subscriptions> <Currency>Account Currency type</Currency> <Amount>Total balance impact</Amount> </CancelResponse> </SOAP-ENV:Body> </SOAP-ENV;Envelope>
即如第2圖所示,該匯入API30從如第1圖所述之客戶 端電腦20接收電子文件。在一替代性具體實施例裡,該電 子文件可接收自一像是該遠端電腦伺服器49之伺服器。該 匯入AP130係與一剖析器60相通訊以剖析該電子文件, 而獲得用以定義該電子文件的層級式結構與關聯於該内容 之資料(即元件、屬性、節點和文字)。該匯入API30管理 11 1334551 該剖析器60 ’以從該文件中標定要剖析的特定資料。在一 具體實施例裡’該剖析器6 0可為一事件基礎式剖析器,即 如美國華盛頓州Redmond市的微敕公司所出品的〇ffice XML PARSER。該剖析 6〇亦可為一樹狀物基礎式剖析 器。該 API30,係優於 柯器,因為可讓使用者 料。即如熟諳本項技藝 器可一次一行地掃描文
器,像是文件物件模型(DOM)剖柯 利用事件基礎式及樹狀物基礎式杳j 標定他要從該文件中擷取的特定資 之人士所瞭解,事件基礎式剖析 件’且依序地逐次提供資料項目(像是標籤),這會要求使 用者保持狀態以尋得所要的資料β樹狀物基礎式剖析器需 將整個文件載入記憶體内,但會仍要求一使用者巡覽整個 載入文件以尋得所要的資料。後文中將另參照於第4圖以 詳細說明前述優點。
該匯入ΑΡΠ0亦與回呼組件50相通訊。該回呼組件50 與該匯入API 30相通訊以決定在既已擷取出第一資料之 後’要從該電子文件匯入的内容的額外的項目。例如,假 使該電子文件内的一元件或節點,與内容的一個以上的項 目(像是名稱列表)相關聯’該匯入Αρι 3〇會操取該第一名 稱,然後存取該回呼組件50以擷取次一名稱一直剡已擷 取出該列表内的所有名稱為止》換t之,對一項目列表’ 該匯入API30可將該列表内的各個項目,循序地傳遞至該 回呼組件50,在此該API30的客戶端2〇可接著進行對該 項目的所要的動作。然後該客戶端在匯入處理過程中亦 可利用該回呼組件50以回去與該aPI3〇通訊,以改變如 12 Γ334551 何處理剰餘的資料。在各種具體實施例裡,由該AP13 0所 匯入的内容70可為一資料串流、一記憶體緩衝器或一檔 案。
現請參照第3圖,此圖顯示一併用於本發明的一具體實 施例之說明性軟體架構300。該架構包含匯出應用程式介 面(ΑΡΙ)40,以從一來源匯出資料而產生一電子文件 90。 在一具體實施例裡,所產生文件90具有一像是XML文件 的層級式檔案結構。即如第3圖所示,該匯出ΑΡΙ40接收 來自該客戶端電腦20資料。在另一具體實施例裡,該資料 可接收自一伺服器,像是遠端電腦伺服器49。在其他種類 的資料當中,該待予匯出之資料可包含文字字串或一固定 之變數列表。
該匯出AP 14 0係與一寫入器80相通訊以接收由該匯出 ΑΡΙ40所標定而待予匯出的資料,並利用該資料以將各個 元件、節點、屬性或文字寫入到該產生的電子文件9 0内。 該匯出 AP 14 0管理該寫入器80以標定待予匯出的特定資 料。在一具體實施例裡,該寫入器80可為一 XML匯出器 組件,像是美國華盛頓州Redmond市的微軟公司所出品的 OFFICE XML EXPORTER。該匯出API 40可供將多個資料 片段(像是XML内容)或甚整個檔案寫入至單一 API呼叫 内。這會比起直接地存取該寫入器80更為有利,因為該寫 入器80僅可供一次寫入一資料片段。應瞭解用於實作該匯 出AP 14 0的語法可類似於該匯入AP 130。如此,在本發明 一具體實施例裡’一使用者可利用該匯出API40及該匯入 13 Γ334551 API3 〇以寫入及稍後讀取該使用者本身的資料’然並不要 求該使用者必須使用兩者°該匯出ΑΡ140的前述優點可參 照第5圖而詳細說明。
第4圖係一說明性副程式4 0 0流程圖,此者係在一根據 本發明的一具體實施例之電腦系統中’用以從一像是XML 文件的電子文件’選擇性地匯入一内容。為便說明,第 4 圖參照第1及2圖說明。
該副程式開始於區塊4 1 0,在此該匯入A Ρ13 0從該個人 電腦20或該遠端電腦伺服器49接收一電子文件。在區塊 415,該匯入ΑΡΙ30係標定要匯入的在文件中的資料。一 使用者可在該應用程式i〇〇(這可為一文書處理器)内,標 定要匯入的特定資料,係將此資訊依序通訊至該匯入 API30。例如’在如前述之說明性XML文件,該使用者或 會對該〈Services〉元件内容、該〈subscription〉節點内容、 該〈Currency〉元件内容(即如 「帳戶貨幣(Account Currency)」種類)以及該<Amount>元件内容有興趣;但對 <S0AP-ENV>元件及屬性不感興趣,其沒有將任何有用的 資訊運輸至使用者。藉由選擇特定的節點及元件,該使用 者也可選定其内含有的所有元件。例如,該<Subscripti〇n> 節點含有一 <BalanceImpacts> 節點,在此 <BalanceImpacts> 係任意長度的元件列表。該<Services>S件也含有一服 務名稱的任意列表。 該副程式400繼續到區塊42〇,其中該剖析器6〇係搜 尋該電子文件,以得到該匯入Api3〇所標定的各項資料(亦 14 1334551 即各節點及元件) U伙π經剖析 文件内之各資料擷取該内容。即如前 又簡述,在一具體實 施例裡,該剖析器6 0係一事件墓虑々 呢式剖析器,其中會掃描 在該文件内的各個元件,且含於其内< API 30所插取。例如,該剖析器6〇會掃 先前由該使用者所標定的<Services:>元#
内容會由該匯入 描該文件以找出 ,而該匯入 API
30會從該〈Services》元件的,,Name”屬性中操取出該文字字 串,’ Some service”。按類似方式掃描所有的元件,_直到 既已從該文件中摘取出關聯於該等特定元件之所有内容為 止。
該副程式400繼續到區塊430,在此該匯入aPI3〇決定 經標定待以匯入的元件裡是否含有内容的額外的項目。如 無内容的額外的項目,則該副程式400結束。該客戶端2〇 可接著選擇藉由擷取内容(即如利用該匯出API40)來產生 一新文件。反之,如確有包含在標定的要匯入的元件中的 内容的額外的項目,該副程式會回返到區塊425,在此該 匯入API3 0會擷取内容的下一個額外的項目。例如,該匯 入 API 30從該〈Services〉元件的’’Name”屬性中梅取出該 文字字串’’ Some service”之後,該匯入API30決定是否有 任何其他包含”Name”屬性的<Service>元件、從各者掏取該 内容、並且將此傳給該回呼組件50以供列印出所要的字 串。 可按處理XML資料之電腦程式碼來實作如第4圖所示 利用該API 30的副程式’即如底下說明性程式碼樣本所示 15 1334551 者。 匯入API的示範性運用:
MsoFImportXML(pistm, FMyCallbackQ, NULL, "o CancelResponse;o Services;(*o Service;aOName;c;pl;)c;o Subscriptions;(*o Subscription.al ID;o Balancelmpacts;p2;(*o Balancelmpact;a2 ImpactType;e3 Amount;c;p3;)c;c;)c;e4 Currency;e5 Amount;p4;f;", NULL, msoffixSOAP);
在如上的匯入API示範性運用裡,該客戶端20會將一標 定所要的内容(即如該<Service>S件的一或更多”Name,,屬 性)的動作字串傳入。一動作字串係一序列標指出所需搜尋 之内容或是在一特定點處所預期之内容的個別動作。在如
上範例裡,該”〇 Cance丨Response”動作意思是前往該XML 文件内<(^!1(^1^81)〇1^0的下一個開玫元件該”a〇 m,,動 作意思是將該目前元件的” ID,,屬性祛,斗办ή山—上 |土拷貝到該客戶端可在回 呼内或是在該匯入API結束後所看則 W有到之一組擷取字串的入 口 (吻)#1 ’該”P2”動作意思是呼叫該回呼的第二情況等
等。-動作字串也可含有動作群組,丨是標註按某方式加 以處置的動作的序列之做法。在如 仕如上範例裡,該動作群組 係藉由括號(parentheses)所圍繞的關聯動作而標示,其中 經以星號(asterisk)而標註的各動作 廿功作群组表示該組動作可 重複零或多次’而構成一列表。另一 乃個動作群组範例(未於 前述之說明性用法圖示),表示預期 頂d出現在該XML文件的 给定點處的一組動作或是内容片段β 說明性回呼函式: 16 1334551 BOOL FMyCallback(void *pvClient, MSOHISD *phisd, MSOXPS *rgxps, int iState) < switch (iState) { case 1: // Processing the <Services> list printf("<Service> Name attribute = %s\n", rgxps[0].wz); break;
case 2: // Processing the <Subscriptions> outer list printf("<Subscription> ID attribute = %s\n", rgxps[l].wz); break; case 3: // Processing the <BalanceImpacts> inner nested list printf("<Balance!mpact> ImpactType attribute = %s\n", rgxps[2].wz); printf("<Amount> element text = %s\n", rgxps[3].wz); break; case 4: // Processing final items after the lists above printf("Final <Currency> element text ·= %s\n", rgxps[4].wz); printf("Final <Amount> element text = %s\n", rgxps[5].wz); break; } return TRUE; }
應了解在像是當該文件並未含有任何列表或重複元件時, 亦可使用該匯入API30,而該客戶端20無需標定一回呼函 式。例如,若該XML檔案僅含一個〈Service〉元件、一個 <BalanceImpact> 節點及一個〈Subscription〉節點,貝該匯 入AP130可將該檔案匯入於一行程式碼内,如下: WCHAR wzServiceName[255], wzSubscriptionID[10], wzBa!anceImpact!mpactType[25 5], wzBalance!mpactAmount[20], wzCurrency[20], wzlotalAmount[20]; MSOXPSrgxps[6]; 17 1334551
MsomitXpsBuffer(&rgxps[0], wzServiceName, 255); MsoInitXpsBuffer(&rgxps[l], wzSubscriptionED, 10); MsomitXpsBufifer(&rgxps[2], wzBalancelmpactlmpactType, 255); MsomitXpsBuffer(&rgxps[3], wzBalancelmpactAmount, 20); MsomitXpsBufiFer(&rgxps[4], wzCurrency, 20);
MsomitXpsBuffer(&rgxps[5], wzTotalAmount, 20);
MsoFImportXML(pistm, NULL, NULL, "o CancelResponse;o Services;o Service;aO Name;c;c;o Subscriptions;o Subscription;al ID;o Balancelmpacts;o Balancelmpact;a2 ImpactType;e3 Amount;c;c;c;c;e4 Currency;e5 Amount;f;", rgxps, msoffixSOAP); printf("<Service> Name attribute = %s\n", wzServiceName); printf("<Subscription> ID attribute = %s\n", wzSubscriptionID); printf("<Balance!mpact> ImpactType attribute = %s\n", wzBalancelmpactlmpactType); printf("<Amount> element textΛ %s\n", wzBalancelmpactAmount); printf("Final <Currency> element text = %s\n", wzCurrency); printf("Final <Amount> element text = %s\n", wzTotalAmount);
如此,該匯入API30有利地允許使用者藉由一單行程式碼 (a single line of code)及一回呼語句(callback statement),而從具有一單行程式瑪及一廣級式結構文件包 含列表之一層級式結構文件,選擇性地匯入内容。即如前 文簡述,該API30可匯入内容作為一資料串流、一記憶體 緩衝器或一檔案。 第5圖係一流程圖,此圖顯示一說明性副程式500,用 以在根據本發明的一具體實施例之一電腦系統内,選擇性 地匯出内容以產生一像是XML檔案的電子文件。為便說 18 1334551 明,第5圊係參照第1及3圖所描述。
該副程式5 00開始於區塊510,其中該匯出API40標定 要匯出的資料。即如前文簡述,該資料可包括文件字串或 一固定變數列表。一使用者可在應用程式10 〇(這可為一文 書處理器)内,標定要匯出的標定資料,係將此資訊依序通 訊至該匯出 API40。在標定要匯出的資料時,使用者也標 定如何在所產生的文件裡表現該資料。例如,一使用者可 標定該文字字串’’Service”元件係表示為一元件,而’’Name” 係表示為該’’Service”元件的一屬性。該匯出API 40送出該 標定資料給該寫入器80,這會在區塊520處利用該標定資 料產生一文件。 如第5圖所示的副程式可實作為一函式呼叫,以利用如 下之說明性程式碼樣本,產生如前述的說明性XML檔案。 匯出API的示範性運用:
MsoFExportXML(pistm, "η 〇;〇 CancelResponse;o Services;e Service ;a Name "Some service";c;o SubscriptionsA Subscription ID "Subscription ID";o Balancemipacts.o Balancelmpact;a ImpactType "Type ofimpact";e Amounf'Non-zero amovint of impact";c;c;c;c;e Currency "Account Currency type";e Amount "Total balance impact";c;", msogrfifexSOAP) 在如上的匯出API示範性運用裡,該客戶端20,係以與該 匯入API3 0示範性運用的動作字串相類似方式所格式化的 動作字串之方式,進行傳遞。在此,-•動作字串係一序列 個別動作,用以指示要寫入該XML文件裡之内容。在如 19 1334551 上範例裡,該”e Amount ‘Total balance impact’’’動作意思 是寫入含該文字”Total balance impact”之 XML 元件 < Amount〉,該”c”動作意思是寫入一符合目前範圍之封閉 元件等等。可利用上述的示範性程式行,來產生一整個沒 有列表之XML文件。該產生的文件,係對應於該無列表 匯入程式碼樣本(亦即,沒有該回呼函式)且可被此者匯 入,即如前按第4圖說明者。
MSOHEXShexs;
MsoFInitExportXML(pistm, &hexs);
MsoFExportXMLContents(&hexs, "η 〇;〇 CancelResponse;o Services;"); while (FSomeltemsLefitlnMyList(wzServiceName)) // Fill out wzServiceName with current service string.
MsoFExportXMLContents2(&hexs, "e Service ;a Name &wzServiceName); // Write:〈Service Name="Some service"〉
MsoFExportXMLContents(&hexs, "c;"); // And so on for the rest of the tags...
MsoFFinishExportXML(&hexs);
可利用上述的各行示範性程式碼來產生具有列表之XML 檔案。所產生的檔案對應於該列表匯入程式碼樣本(亦即, 具有回呼函式)且可被此者匯入,即如前按第4圖說明者。 如此,該匯出API40有利地讓使用者能夠選擇性一次地匯 出包含多個元件及屬性的内容,以藉由單行程式碼產生層 級式結構文件,並僅藉由數行的程式碼產生含列表之層級 式結構文件。 20 1334551
即如前述,可實作一應用程式介面(API)以從一像是一 XML檔案之層級式結構文件匯入内容。該API可併同一剖 析器工作以掃描該文件,並從該等選定元件、節點、屬性 及文字中擷取内容。該API也可運用一回呼組件以處理(即 如從各列表)所擷取内容。該匯入API可提供要從一文件中 擷取出的標定資料的規格。如此會優於利用事件基礎式剖 析器’該者會循序地從一文件中一次提供一資料項目,以 及樹狀物基礎式剖析器,此者直接地要求巡覽一載入檔案 以尋得所要的資料。
亦可實作一 API以匯出資料而產生一像是XML檔案之 層級式結構文件。該API可併同一寫入器工作以接收資 料,並匯出該資料作為一層級式結構文件内的元件、節點、 屬性及文字。該匯出API可供在單一 API呼叫裡寫入多個 資料片段(如XML内容)或一整個檔案。這會優於利用僅能 一次寫入一資料片段的寫入器(像是一 xml寫入器)。應了 解可按管理及或未經管理的方式實作該匯入API 30及該 匯出AP140。經考量前揭之本發明規格及實作,本發明其 他具體實施例對於熟諳本項技藝之人士確屬顯見。 【圖式簡單說明】 本文所含之各圖式簡要說明現列述如下。 第1圖係一電腦與關聯週邊及網路裝置之方塊圖,此可 提供一用於本發明之說明性操作環境。 第2圓係顯示根據本發明的一實施例之用以匯入一電 21 1334551 子文件之說明性架構的方塊圖。 .第3圖係顯不根據本發明的_實施例之用以匯出資料 以產生一電子文件之說明性架構的方塊圖。 第4圖係顯不根據本發明的一實施例之藉由匯入一電 子文件之說明性副程式所執行的各項步驟之一流程圖。 、第5圖係顯示根據本發明的一實施例之藉由匯出資料 以產生一電子文件之說明性副程式所執行的各項步驟之一
流程圖。
【元件代表符號簡單說明】 20 客戶端電腦 21 處理單元 22 系統記憶體 23 系統匯流排 24 唯讀記憶體(ROM) 25 隨機存取記憶體(RAM) 26 基本輪入/輸出系統(BIOS) 27 硬碟機 28 磁碟機 29 可移除碟片 30 匯入應用程式介面 3 1 CD-ROM碟片 32 硬碟機介面 33 磁碟機介面 34 光碟機介面 35 作業系統 37 應用程式 40 匯出應用程式介面 42 滑鼠 46 序列機棒介面 47 監視器 48 視訊配接卡 49 遠端電腦 50 記憶想儲存裝置/回呼组件 51 區域網路(LAN) 52 廣域網路(WAN) 22 1334551 53 網 路 介 面或 配 接 器 54 數 據 機 60 剖 析 器 70 所 欲 内 容 75 光 碟 機 76 鍵 盤 80 寫 入 器 90 電 子 文 件 100 應 用 程 式 410 接 收 文 件 415 標定文件内待予 匯入的資料 420 按 資 料 剖析文件 425 從 資 料 中擷 取 内 容的項目 430 内 容的額
§ ? 5 1 0標定文件内待予匯出的資料 5 1 5藉標定資料而產生文件
23

Claims (1)

1334551 $年《月曰修正本
1. 一種用以匯出及選擇性地匯入内容於一電子文件之方 法,係包含下列步驟: 從一資料來源,接收包含資料之内容;
經由一匯出應用程式介面(API),標定要匯出以產生一 電子文件的該資料; 經由一寫入器與該匯出API通訊,匯出該資料,以產生 該電子文件; 接收該具有該資料及與該資料有關之該内容的項目之 電子文件,其中該資料係定義一層級式檔案結構; 經由一匯入API,標定要從該電子文件匯入的位在該電 子文件内的至少一資料片段,其中該至少一資料片段係與 該電子文件中的該内容的至少一項目有關; 經由一剖析器與該匯入API通訊,選擇地剖析該電子文 件以得到該至少一資料片段;
從與來自於該電子文件之該至少一資料片段有關之該 内容擷取一第一項目,其中允許標定自該電子文件匯入的 特定資料,以經由一顯示器裝置加以顯示; 從來自於該電子文件之該至少一資料片段有關之該内 容擷取該第一項目之後,則經由一回呼組件與該匯入API 通訊來決定何時有任何與該至少一資料片段之内容有關的 額外的項目; 24 1334551 當有與該至少一資料片段之内容有關的額外的項目 時,擷取與來自該電子文件之該至少一資料片段有關之内 容的下一個項目;以及 經由該顯示器裝置來顯示所擷取的該内容的各個項 目,以供使用者觀看。
2.如申請專利範圍第1項所述之方法,其中該層級式檔案 結構係XML。 3.如申請專利範圍第1項所述之方法,其中該至少一資料 片段係一 XML元件。 4.如申請專利範圍第1項所述之方法,其中該至少一資料 片段係一 XML屬性。
5.如申請專利範圍第1項所述之方法,其中該至少一資料 片段係一 XML節點。 6.如申請專利範圍第1項所述之方法,其中該至少一資料 片段係文字。 7.如申請專利範圍第1項所述之方法,其中從該内容擷取 一第一項目之步驟,係包含從一資料串流匯入該第一項目。 25 1334551 8.如申請專利範圍第1項所述之方法,其中從該内容擷取 一第一項目之步驟,係包含從一記憶體緩衝器匯入該第一 項目。
9.如申請專利範圍第1項所述之方法,其中從該内容擷取 一第一項目之步驟,係包含從一檔案匯入該第一項目。 10.如申請專利範圍第1項所述之方法,其中更包含下列 步驟: 在匯入處理期間,使用該回呼組件而回訊至一 API,以 改變如何處理該等額外的項目,其中允許來自一階級式結 構文件之内容經由一回呼語句(callback statement)而以一 單行程式碼之方式匯入。
11.如申請專利範圍第1項所述之方法,其中經由一匯出 應用程式介面(API),標定要匯出以產生一電子文件的資料 之步驟,更包含標定該資料如何在所產生的電子文件中呈 現。 12.—種電腦儲存媒體,可藉由一電腦系統讀取且具有電腦 可執行組件,以供匯出及匯入内容於一電腦系統中的一電 子文件匯入内容,包含: 26 1334551 一匯出組件,用以 在該匯出組件端,從一來源電腦接收資料;及 標定要匯出以產生一電子文件的資料,其中該資料包 含文字字串或一固定變數列表; 一寫入器,用以
在該寫入器組件端,接收來自該匯出組件所標定的資 料並匯出該資料以產生該電子文件,其中匯出該資料之步 驟,係包含在一單一應用程式介面(API)呼叫中,寫入複數 個資料片段; 一匯入組件,用以 接收該電子文件,其具有資料及與該資料有關之内 容的項目,其中該資料係定義一層級式檔案結構; 標定要從該電子文件匯入的位在該電子文件内的至 少一資料片段,其與該電子文件中該内容的至少一項目有 關;
擷取與來自該電子文件之該至少一資料片段有關之 内容的一第一項目; 在擷取該内容的第一項目後,決定是否有任何與該 至少一資料片段有關之該内容的額外的項目;及 當有該内容的額外的項目時,允許使用者改變如何 處理該内容的該等額外的項目;及 與一剖析器組件進行通訊;且 該剖析器用以 27 1334551 選擇地剖析該電子文件,以得到該至少一資料片 段;及 將該至少一資料片段傳送至該匯入組件,以經由顯 示器裝置加以顯示。
1 3.如申請專利範圍第1 2項所述之電腦儲存媒體,其中該 剖析器組件係事件基礎式。 14.如申請專利範圍第12項所述之電腦儲存媒體,更具有 電腦可執行組件,其包含一回呼組件以處理來自該電子文 件的與至少一資料片段有關之内容的該等已擷取的項目。 15.如申請專利範圍第12項所述之電腦儲存媒體,其中該 内容的至少一項目包含一文字字串。
16.如申請專利範圍第12項所述之電腦儲存媒體,其中該 層級式檔案結構係XML。 17.如申請專利範圍第12項所述之電腦儲存媒體,其中該 至少一資料片段係一 XML元件。 18.如申請專利範圍第12項所述之電腦儲存媒體,其中該 至少一資料片段係一 XML屬性。 28 1334551 19.如申請專利範圍第12項所述之電腦儲存媒體,其中該 至少一資料片段係一 XML節點》 20. 如申請專利範圍第12項所述之電腦儲存媒體,其中該 至少一資料片段係文字。
21. 如申請專利範圍第12項所述之電腦儲存媒體,其中該 來源係該電腦系統中的一客戶端。 22.如申請專利範圍第12項所述之電腦儲存媒體,其中該 來源電腦係該電腦系統中的一伺服器。
29
TW092133100A 2002-11-27 2003-11-25 Method and computer-readable medium for improting and exporting hierarchically structured data TWI334551B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/306,022 US7191186B1 (en) 2002-11-27 2002-11-27 Method and computer-readable medium for importing and exporting hierarchically structured data

Publications (2)

Publication Number Publication Date
TW200422881A TW200422881A (en) 2004-11-01
TWI334551B true TWI334551B (en) 2010-12-11

Family

ID=32312191

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092133100A TWI334551B (en) 2002-11-27 2003-11-25 Method and computer-readable medium for improting and exporting hierarchically structured data

Country Status (17)

Country Link
US (1) US7191186B1 (zh)
EP (1) EP1426877B1 (zh)
JP (1) JP2004178602A (zh)
KR (1) KR101067398B1 (zh)
CN (1) CN100527121C (zh)
AT (1) ATE481683T1 (zh)
AU (1) AU2003262290B2 (zh)
BR (1) BR0306749A (zh)
CA (1) CA2448787C (zh)
DE (1) DE60334185D1 (zh)
HK (1) HK1066304A1 (zh)
MX (1) MXPA03010779A (zh)
MY (1) MY134408A (zh)
PL (1) PL363561A1 (zh)
RU (1) RU2338245C2 (zh)
TW (1) TWI334551B (zh)
ZA (1) ZA200308722B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8886676B2 (en) 2011-01-18 2014-11-11 Apple Inc. Reconstruction of lists in a document
TWI551085B (zh) * 2011-02-18 2016-09-21 Murata Machinery Ltd Relay communication system

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205216A1 (en) * 2003-03-19 2004-10-14 Ballinger Keith W. Efficient message packaging for transport
US8296354B2 (en) * 2004-12-03 2012-10-23 Microsoft Corporation Flexibly transferring typed application data
EP1729235A1 (en) * 2005-06-03 2006-12-06 Agfa Corporation Structured reporting report data manager
US8711142B2 (en) * 2005-08-11 2014-04-29 International Business Machines Corporation Visual model importation
EP1965309A4 (en) 2005-12-05 2009-04-01 Sursen Corp SYSTEM AND METHOD FOR HIERARCHISTIC PROCESSING OF DOCUMENTS
CN100547590C (zh) * 2005-12-05 2009-10-07 北京书生国际信息技术有限公司 文档处理系统
CN1979478B (zh) * 2005-12-09 2010-05-26 北京书生国际信息技术有限公司 文档处理系统和文档处理方法
EP1965314A4 (en) 2005-12-05 2009-04-01 Sursen Corp SYSTEM AND METHOD FOR DOCUMENT PROCESSING
CN1979479B (zh) * 2005-12-09 2010-06-02 北京书生国际信息技术有限公司 文档处理系统和文档处理方法
CN102043821B (zh) * 2005-12-09 2013-03-27 北京书生国际信息技术有限公司 一种显示文档的方法
US7836055B2 (en) * 2006-01-31 2010-11-16 Microsoft Corporation XNA relationship management
US7814211B2 (en) 2006-01-31 2010-10-12 Microsoft Corporation Varying of message encoding
US20070266309A1 (en) * 2006-05-12 2007-11-15 Royston Sellman Document transfer between document editing software applications
CN100458786C (zh) * 2006-06-15 2009-02-04 Ut斯达康通讯有限公司 基于应用定制解析xml文档的方法及装置
US8732661B2 (en) * 2007-02-01 2014-05-20 Microsoft Corporation User experience customization framework
WO2009043033A2 (en) 2007-09-28 2009-04-02 Xcerion Aktiebolag Network operating system
US8370735B2 (en) * 2008-06-27 2013-02-05 Microsoft Corporation Efficient, non-blocking mechanism for incrementally processing arbitrary sized XML documents
US10943030B2 (en) * 2008-12-15 2021-03-09 Ibailbonding.Com Securable independent electronic document
JP5369794B2 (ja) 2009-03-17 2013-12-18 株式会社リコー 情報処理装置、情報処理方法およびプログラム
US10114840B2 (en) * 2009-09-29 2018-10-30 Sap Se Customer data separation in a service provider scenario
CN101706779B (zh) * 2009-10-12 2013-05-08 南京联创科技集团股份有限公司 基于oracle的伞状数据导入导出方法
CN102122280B (zh) * 2009-12-17 2013-06-05 北大方正集团有限公司 一种智能提取内容对象的方法及系统
US10515141B2 (en) 2012-07-18 2019-12-24 Software Ag Usa, Inc. Systems and/or methods for delayed encoding of XML information sets
US9922089B2 (en) * 2012-07-18 2018-03-20 Software Ag Usa, Inc. Systems and/or methods for caching XML information sets with delayed node instantiation
US9760549B2 (en) 2012-07-18 2017-09-12 Software Ag Usa, Inc. Systems and/or methods for performing atomic updates on large XML information sets
CN103714062B (zh) 2012-09-28 2017-05-31 国际商业机器公司 基于依赖关系导入实体‑联系模型数据的方法和系统
CN104753891B (zh) * 2013-12-31 2019-04-05 中国移动通信集团湖南有限公司 一种xml报文解析方法及装置
US9635089B2 (en) * 2014-12-31 2017-04-25 Verizon Patent And Licensing Inc. Auto suggestion in search with additional properties
US10678777B2 (en) 2017-09-27 2020-06-09 Fomtech Limited System and method for data aggregation and comparison
EP3462334A1 (en) 2017-09-27 2019-04-03 Fomtech Limited System and method for data aggregation and comparison

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09269940A (ja) * 1996-03-29 1997-10-14 Sharp Corp 日時等を抽出する装置
JP3896702B2 (ja) 1998-09-18 2007-03-22 富士ゼロックス株式会社 文書管理システム
US6427123B1 (en) * 1999-02-18 2002-07-30 Oracle Corporation Hierarchical indexing for accessing hierarchically organized information in a relational system
US6862710B1 (en) * 1999-03-23 2005-03-01 Insightful Corporation Internet navigation using soft hyperlinks
US6549916B1 (en) * 1999-08-05 2003-04-15 Oracle Corporation Event notification system tied to a file system
US6947953B2 (en) * 1999-11-05 2005-09-20 The Board Of Trustees Of The Leland Stanford Junior University Internet-linked system for directory protocol based data storage, retrieval and analysis
US6529905B1 (en) * 2000-01-11 2003-03-04 Frontline Solutions, Inc. Method and system for allowing multiple users to edit a hierarchical data structure
US6819339B1 (en) * 2000-02-24 2004-11-16 Eric Morgan Dowling Web browser with multilevel functions
JP2002094472A (ja) 2000-05-30 2002-03-29 Matsushita Electric Ind Co Ltd データ取得装置及びその方法
JP2002140350A (ja) 2000-11-02 2002-05-17 Toshiba Corp 入力データの履歴管理装置及び管理方法及び該管理方法が記憶された情報記憶媒体
GB2373698A (en) * 2001-03-20 2002-09-25 Copyn Ltd Storage of a portion of a web-page containing a link
JP3842573B2 (ja) * 2001-03-30 2006-11-08 株式会社東芝 構造化文書検索方法、構造化文書管理装置及びプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8886676B2 (en) 2011-01-18 2014-11-11 Apple Inc. Reconstruction of lists in a document
TWI472933B (zh) * 2011-01-18 2015-02-11 Apple Inc 用於文件中之列表重建的方法及電腦程式產品
TWI551085B (zh) * 2011-02-18 2016-09-21 Murata Machinery Ltd Relay communication system

Also Published As

Publication number Publication date
AU2003262290A1 (en) 2004-06-10
RU2338245C2 (ru) 2008-11-10
DE60334185D1 (de) 2010-10-28
AU2003262290B2 (en) 2009-09-17
KR20040047657A (ko) 2004-06-05
TW200422881A (en) 2004-11-01
CN1504925A (zh) 2004-06-16
JP2004178602A (ja) 2004-06-24
BR0306749A (pt) 2004-10-13
KR101067398B1 (ko) 2011-09-27
CA2448787C (en) 2012-01-17
EP1426877B1 (en) 2010-09-15
PL363561A1 (en) 2004-05-31
CA2448787A1 (en) 2004-05-27
EP1426877A3 (en) 2007-09-12
US7191186B1 (en) 2007-03-13
ATE481683T1 (de) 2010-10-15
CN100527121C (zh) 2009-08-12
RU2003134278A (ru) 2005-05-10
ZA200308722B (en) 2004-10-08
HK1066304A1 (en) 2005-03-18
MY134408A (en) 2007-12-31
MXPA03010779A (es) 2005-04-19
EP1426877A2 (en) 2004-06-09

Similar Documents

Publication Publication Date Title
TWI334551B (en) Method and computer-readable medium for improting and exporting hierarchically structured data
US7080083B2 (en) Extensible stylesheet designs in visual graphic environments
US20050278358A1 (en) Method of and system for providing positional based object to XML mapping
US20040221233A1 (en) Systems and methods for report design and generation
US20050273703A1 (en) Method of and system for providing namespace based object to XML mapping
US20060136422A1 (en) Multiple bindings in web service data connection
US20060107206A1 (en) Form related data reduction
US20030018661A1 (en) XML smart mapping system and method
CA2438176A1 (en) Xml-based multi-format business services design pattern
EP2211277A1 (en) Method and apparatus for generating an integrated view of multiple databases
US7827205B2 (en) Bi-directional data mapping tool
US20060230057A1 (en) Method and apparatus for mapping web services definition language files to application specific business objects in an integrated application environment
US20040205552A1 (en) Method and system for mapping between markup language document and an object model
EP1910930A2 (en) Lightweight application program interface (api) for extensible markup language (xml)
US7447697B2 (en) Method of and system for providing path based object to XML mapping
Ennis CORBA and XML Integration in Enterprise Systems
GB2357348A (en) Using an abstract messaging interface and associated parsers to access standard document object models
Nakhimovsky et al. Google, Amazon, and beyond: Creating and consuming Web services
Armstrong Working with XML
Bebee et al. Distributed meta data objects using RDF
WO2001073561A1 (en) Contents server device
US8307336B1 (en) Mechanism for enabling a set of output from a functional component to be presented on different types of clients
Hanhijärvi SURVEY OF XML DEVELOPMENT
Wright et al. Introducing System. Xml
Opara et al. Scalability, interoperability and movement of data on the web using XML technology

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees