新四季網

用於網絡撰寫協助的工具的製作方法

2023-12-01 21:26:51 4

專利名稱:用於網絡撰寫協助的工具的製作方法
技術領域:
本發明涉及一種用於網頁撰寫協助的工具,且具體地說,涉及一種自動產生網頁的顯示格式碼的工具。
背景技術:
隨著全球信息網(WWW)的日益風行,網頁的迅速設計與產生逐漸變為必要。網頁需要迅速受到產生,但必須維持複雜度與靈活性。存在一些用於網頁撰寫的工具,以通過基於輸入參數自動產生標記碼,例如超文本標記語言(HTML),來協助網頁的產生。標記碼承載關於如何展現及顯示標記碼所標識的數據的指令。這些工具允許網頁的內容受到更改,且無需整個網頁的重新產生。這通常是通過下列方式來達成分別存儲變化的內容與網頁,且在標記碼中包含引用變化的內容的位置的標籤。該網頁接著可根據控制來受到處理,其中該控制由通過為分別存儲的變化內容的所產生及包含的標籤與標記來指定。
微軟提供ActiveX設計時間控制(DTCs),其中DTC可插入標記碼文件且在運行時間之前,在網頁的設計期間受到處理,請參看美國專利6,025,119。但是,DTC處理受限於產生標記碼文件的編輯器,且編輯器通常位於撰寫客戶端。通過分離撰寫與處理,從而處理無需發生於客戶端的指定編輯器,許多操作可更有效率地受到執行。
DTC是以標記碼批註為基礎,其中這些批註被用於包含這些控制。不幸的是,標記碼批註無法在彼此中嵌套,因而限制DTC在網頁布局產生方面的使用。即,網頁布局無法通過使用DTC與嵌入其它DTC於該DTC來加以控制。若要提供網頁布局功能,一分離工具必須連同這些DTC一起受到使用。
這些DTC的缺點是它們的使用受限於微軟平臺。另一方面,JavaServerPages(JSP)標籤庫(taglib)提供類似的功能,但是因為它們是以Java語言為基礎,所以它們不受限於任何特定平臺。但是,標籤庫只在請求期間受到執行,使得標籤庫處理器必須是網絡應用伺服器的一部份。另外,因為標籤庫產生動態內容,所以伺服器處理負載會增加。

發明內容
本發明提高了一種為伺服器上多個文件自動生成顯示格式化的方法,如權利要求1所述。本發明提供了相應的伺服器系統,如權利要求9所述,以及電腦程式產品,如權利要求10所述。
本發明允許在顯示格式化碼的各個階段為網頁生成該顯示格式化碼,並提供了一種用於網頁撰寫協助的方法,該方法可以被用於網頁布局。
這就允許將網頁的內容源碼與網頁分離,並提供響應於源碼變更的迅速並且自動的網頁更新。本發明的控制可以互相嵌套,這就允許更容易地生成複雜的網頁。


下文將參照附圖來描述本發明,其中圖1是描繪根據本發明的實例的計算環境的示意圖;圖2是描繪一種方法的流程圖,且該方法從內容源碼自動產生標記碼來協助網絡撰寫;圖3是更詳細地描繪產生圖2的標記碼的步驟的流程圖;圖4是描繪一種系統的系統圖,該系統從內容源碼自動產生標記碼來協助網絡撰寫;且圖5是描繪圖4的WAC處理器的系統架構圖。
具體實施例方式
圖1與相關的說明表示可實現本發明的適當計算環境的範例。雖然本發明的實施例是通過運行於個人計算機的電腦程式的計算機可執行指令的般環境來說明,但是本發明也可與其它程序模塊起受到實現。
通常,程序模塊包含執行特殊任務或實現特殊抽象數據類型的例程,程序,組件,數據結構等。另外,本發明也可利用其它計算機系統配置來實現,其中包含手持式裝置,多處理器系統,微處理器型或可程序設計型消費電子產品,小型計算機,大型計算機,與分布式計算環境,其中程序模塊可位於本地與遠程的存儲器存儲裝置。
請參看圖1,本發明可在現有個人計算機200形式的通用計算裝置中實現,其中包含處理單元210,系統存儲器220,與系統總線230,且系統總線230耦接各種系統組件,其中包含系統存儲器200至處理單元210。系統存儲器200包含只讀存儲器(ROM)240與隨機存取存儲器(RAM)250。
基本輸入/輸出系統260(BIOS)存儲於ROM240,其中包含基本例程以協助個人計算機200內的各種組件間的信息轉移(例如在啟動期間)。個人計算機200進一步包含硬碟驅動器270,以讀取及寫入硬碟(未展示);軟盤驅動器280,以讀取或寫入可移動軟盤290;與光碟機291,以讀取或寫入可移動光碟292,例如CD ROM或其它光學媒體,其中所有前述組件皆通過對應接口292,293,294連接至系統總線230。這些驅動器以及與它們關聯的計算機可讀媒體提供個人計算機200的計算機可讀指令,數據結構,程序模塊與其它數據的非易失性存儲。雖然本文所述的示範環境運用特定盤,但本領域技術人員應可理解,用以存儲數據的其它類型的計算機可讀媒體也可受到使用。
許多程序模塊可存儲於碟片290,292,ROM240或RAM250,其中包含作業系統295,一或更多應用程式296,其它程序模塊297,與程序數據298。命令與信息可經由輸入裝置(例如鍵盤201,指向裝置202,麥克風,搖杆等)輸入至個人計算機200。這些輸入裝置可經由串行埠接口206,並列埠,遊戲埠或通用串行總線(USB),來連接至處理單元210。顯示器207或其它類型的顯示裝置也可經由接口,例如視頻轉接器208,連接至系統總線230。
個人計算機200可運用邏輯連結來運行於網絡環境,其中這些邏輯連結通往一或更多遠程計算機209,例如另一個人計算機,伺服器,路由器,網絡PC,對等裝置或其它常見的網絡節點。圖1所描繪的邏輯連結包含區域網路(LAN) 212與廣域網絡(WAN)213。此種網絡環境常見於辦公室,企業級計算機網絡,內部網絡與網際網路。
當用於LAN網絡環境時,個人計算機200經由網絡接口或轉接器214連接至區域網路212。當用於WAN網絡環境時,個人計算機200通常包含經由串行埠接口206連接至系統總線230的數據機215,或其它裝置,以建立通過廣域網絡213(例如網際網路)的通信。本發明的運行可分散於二計算機200、209之間,以致一計算機充當伺服器且另一計算機充當客戶端(請參看圖4)。每一計算機200,209(客戶端與伺服器)的本發明的運行可存儲於每一計算機200,209的RAM250,以作為應用程式296,其它程序模塊297,或存儲於碟片270,280,291中的某個盤。應可理解所展示的網絡連結是作為示範的,且在諸計算機間建立通信連結的其它裝置也可受到使用。
圖2是描繪一種方法10的流程圖,且該方法從內容源碼自動產生標記碼來協助網絡撰寫。標記碼這個術語意謂用於網頁的格式化與顯示的任何碼,且可與顯示格式化指令這個術語互換使用。標記碼可利用些標記語言來撰寫,例如HTML,Java Server Pages(JSP),Active Server Pages(ASP),ExtensibleMarkup Language(XML)等。複雜的網頁可通過方法10來產生,且方法10基於簡單的輸入參數來自動產生標記碼。方法10提供一種方式以包含可與網頁分離的源碼內容在該網頁的對應碼中引用這些內容源碼,且在顯示執行之前處理該碼。
第一標記碼集合產生於步驟12,以充當網頁的基礎。網絡撰寫控制(WAC)標籤包含於此第一標記碼集合,且該標籤在步驟14插入於該碼。WAC定義下列操作格式化內容源碼以供顯示,及可選地插入格式化的內容源碼於網頁。WAC標籤指定如何將在標籤中所引用的內容源碼格式化,並插入第一標記碼集合。在標籤中所引用的內容源碼是項目的一部份,其中該項目包含相關的文件與第一標記碼集合所屬的資源。通過設定WAC標籤中的輸入參數值且接著執行處理器,WAC標籤所引用的內容源碼的標記碼受到產生。WAC的執行產生類似於參數化宏的結果。
例如,導航控制項可通過下列方式增加至網站的所有網頁產生網站地圖資源與WAC,以讀取網站地圖與產生及插入這些導航控制項於每一個別網頁。即,通過插入針對導航控制項內容的WAC標籤於網頁,這些導航控制項的標記碼可自動受到產生及增加至該網頁。此種結果以前通常是通過拷貝與黏貼動作來達成,以增加已存在於標記碼的這些導航控制項至每一個別網頁。
作為另一範例,對於資料庫表的每一記錄的網頁顯示與連接至這些記錄的索引網頁,WAC可用以簡化產生每一記錄與索引網頁的標記碼的過程。具有索引與記錄的網頁可通過使用對WAC來產生,其中一WAC針對索引且另一WAC針對這些記錄。這些WAC的標籤可包含於用以顯示索引與記錄的網頁。
WAC輸入參數的值是在步驟16設定於WAC標籤。第一標記碼集合的產生,WAC標籤的插入與參數值設定(步驟12至16)皆可利用標準的標記碼編輯器來執行。
第二標記碼集合是在步驟18從WAC標籤所引用的內容源碼來產生。WAC定義此產生過程如何讀取內容源碼,與如何格式化內容源碼成為標記碼。
網頁撰寫的生命周期具有一套被定義的上下文環境,其中包含產生,存儲,編輯,預覽,籤入與公布,且籤入與公布階段可能發生於撰寫伺服器。生命周期的這些階段可作為觸發點以啟始WAC的執行,且此執行可能發生於撰寫伺服器。例如,當項目中的一個文件改變及被籤入時,此改變所影響的所有文件可受到再處理以包含這些改變。這允許要使用的靜態內容可輕易受到改變,以允許WAC可在網頁的生命的任一點受到處理。使用靜態內容可降低伺服器處理負載,且允許網頁受到搜尋引擎的索引。
處理WAC以產生標記碼可發生於網頁的生命周期的各個階段。因為當輸入參數,資源或整個內容源碼受到改變時,網頁可受到再處理,所以這簡化了網頁的維護。在導航控制項的前述範例中,當網站地圖改變時,包含引用這些導航控制項源碼的WAC標籤的網頁可受到再處理,且無需每一個別網頁受到手動更改。
在步驟20,從內容源碼所產生的第二標記碼集合被包含於第一標記碼集合。可選地,第二標記碼集合可被包含於分離的輸出文件。在步驟22這結合的標記碼集合受到存儲。在步驟24,一旦收到檢索與顯示的請求,則這結合的標記碼傳送至請求者。
可選地,在包含於第一標記碼集合之前,第二標記碼集合可受到編輯。此時用戶所做的任何改變或增加皆標示成為由用戶所產生。
圖3是更詳細地描繪圖2的產生標記碼18的步驟的流程圖。在步驟30WAC處理器讀取第一標記碼集合,且在步驟32定位此碼的所有WAC標籤。從第一標記碼集合的所有WAC標籤形成樹結構。WAC的定位與該樹的形成可根據已知的技術來執行。例如,利用Java與XML來實現的WAC可根據文件對象模型(DOM)標準來形成樹。此樹充當第一標記碼集合的映射,以設定所有需要處理的WAC及它們在第一標記碼集合中的發生順序。對於WAC標籤可受到嵌入的情形,該樹允許這些WAC的深度優先順序處理,且保留WAC處理的結果的相對位置。
在步驟34特定WAC標籤的參數輸入傳送至WAC處理器,且接著在步驟36,WAC受到執行。當多個WAC位於單獨一個第一標記碼集合時,則針對每一個別WAC,步驟34與36受到重複。當所有WAC皆受到執行時,則在步驟20,處理的結果包含於第一標記碼集合。
圖4是描繪一種系統50的系統圖,其中系統50從內容源碼68自動產生標記碼來協助網絡撰寫。描繪的系統50使用客戶端54與伺服器52,其中網頁的撰寫發生於客戶端54,且WAC的執行發生於伺服器52。
客戶端54包含標準的標記語言編輯器62。編輯器62是用於第一標記碼集合64的產生。第一標記碼集合64形成網頁的基礎。在第一標記碼集合64內,存在WAC的標籤66,以指定第一標記碼集合64以外的內容源碼68。內容源碼68與第一標記碼集合64可為較大項目的一部份。顯示於標籤66的WAC指定如何處理內容源碼68,及將其可選地包含於第一標記碼集合64。
客戶端54可包含其它開發工具,例如,用以控制項目的資源的項目管理器,與用以處理這些資源的建造處理器。客戶端54也可包含源碼控制系統,以存儲這些項目資源的各種版本,與控制對於這些資源的並發存取。
伺服器52包含存儲庫,以存儲內容源碼68與第一標記碼集合64所屬的項目的所有文件。此存儲庫,即網頁存儲裝置58,接收來自一或多個客戶端54的相關於該項目的文件。如果多個客戶端54共享此數據,則存儲裝置58可包含文件控制機制,以將文件的編輯能力局限於一次一個客戶端54。這些文件,例如第一標記碼集合64,在產生之後,連同來自客戶端54的相關文件(亦即內容源碼58),存儲於網頁存儲裝置58。伺服器52也包含公布請求處理器60,以滿足用於觀看存儲於存儲裝置58的網頁的請求。
伺服器52具有WAC處理器56,以根據存儲於WAC定義存儲裝置70的WAC定義來處理存儲裝置58的文件的WAC標籤。文件的WAC標籤包含針對WAC標識符或名稱的引用,以及參數,以提供數據給WAC來控制處理。當項目文件受到更新時,WAC處理器56可由客戶端54的建造處理器來啟動。
存儲於WAC定義存儲裝置70的每一WAC定義具有三部分標識符72,參數74與控制動作76。當從存儲於伺服器52以供處理的第一標記碼集合64讀取WAC標籤時,WAC標識符與參數被存儲成為分離的元素,以供在WAC的執行時使用。標識符72是針對某類型的WAC的獨特標識符。參數74包含基本格式化信息,且可包含對於其它WAC的引用。控制動作76根據參數74所提供的信息來產生標記。控制動作76所產生的標記是字符序列,且這些字符序列插入於WAC標籤66所引用的文件,即內容源碼68。此字符序列顯示如何連同第一標記碼集合64的顯示一起顯示內容源碼68。即,控制動作76翻譯內容源碼68成為第一標記碼集合64的標記語言,例如HTML,以致該二標記碼集合可受到無接縫的顯示,或包含內容源碼68於第一標記碼集合64。
控制動作76通過展現協助設定參數74的界面來簡化網絡撰寫。客戶端一側54的編輯器62可包含,例如,通過標識符72藉助屬性表單對於WAC的引用,以及可選的定製屬性編輯器。控制動作74可用以自動化繁複任務,例如增加行號至列表,或使得用戶無需能夠撰寫複雜的HTML或Javascripts。
圖5是描繪圖4的WAC處理器56的系統架構圖。WAC處理器56接受一些參數,其中這些參數指定要受到處理且要包含到含第一標記碼集合64的文件中的文件。WAC處理器56還接收一些參數,其中這些參數相關於第一標記碼集合64的生命周期階段與其它處理選擇,例如是否在輸出之前,第一標記碼集合64應受到更新或移除WAC標籤。
WAC處理器56的文件讀取器80從當前項目讀取第一標記碼集合64。當包含第一標記碼集合64的文件受到讀取時,文件讀取器80傳送該讀取文件至文件分析器82,在文件分析器82中從該讀取文件的內容來形成樹結構。
文件更新器84更新解析的文件的WAC。文件更新器84的執行可通過使用輸入參數來抑制。當文件已受到更新,但WAC標籤必須在公布之前受到移去時,這很有用。文件更新器84遍歷該樹且執行該樹所標示的每一WAC。每一執行的WAC產生可包含額外WAC的標記碼,且這些額外的WAC變為該樹的一部分及受到執行。依照深度優先順序遍歷該樹一次,其中該順序對應於文件的這些WAC的順序。文件更新器84還從第一標記碼集合64抽取WAC標籤,且暫時存儲來自每一標籤的這些WAC標識符與參數。
文件更新器84的控制加載器90取得暫時存儲的WAC標識符。控制加載器90在WAC定義存儲裝置70的WAC定義中搜尋,以尋找具有與當前被保留的標識符72相同的標識符的WAC定義。一旦發現匹配的標識符,則控制加載器90產生該WAC定義的實例。這些WAC實例可放入緩衝池並被復用以改善效能。
控制執行器92取得保留的參數,且設定這些參數成為控制加載器90所產生的WAC實例的參數74定義的屬性。控制執行器92接著執行WAC實例及產生更新的標記碼,例如第二標記碼集合。WAC實例可在其執行時存取項目資源,以從存儲於伺服器52的內容源碼或WAC標籤所引用的其它地方,取得內容。
控制執行器92的資源管理器96使得執行的WAC實例可存取項目資源,例如內容源碼。WAC實例可產生,讀取,更新與刪除項目資源。例如,產生橫幅或導航條的WAC可存取網站地圖項目資源。另外,從資料庫產生網頁的WAC可刪除現有的網頁集合,且接著產生新網頁集合。
文件更新器84的內容合併器94取得更新的標記碼,且合併該標記碼於該文件。即,內容合併器94根據標記碼的類型,即是自動產生或用戶產生,來合併第二標記碼集合於第一標記碼集合64。相互區分這些類型的標記碼,以便於將第二標記碼集合合併於第一標記碼集合64。用戶產生的標記碼被標示成為由用戶所產生,而任何剩餘的非用戶產生的標記碼被假設為自動產生。第二標記碼集合從新標記碼形成,無論是自動產生或用戶產生,而第一標記碼集合64包含舊標記碼。在合併該二標記碼集合之前,執行對應以決定該二集合的部分是否具有關聯性;且記錄任何此種對應部分。
舊的自動產生標記碼(位於第一標記碼集合64)被從文件中移去,且替換為從第二標記碼集合自動產生的新的標記碼。未對應於第一標記碼集合64的部分的新標記碼,無論自動產生或用戶產生,被插入第一標記碼集合64。如果新標記碼包含來自用戶的標記,則檢查舊標記碼是否存在匹配的標記碼。舊用戶標記碼與對應的新用戶標記碼可受到保存。這允許對于格式的原來的用戶變更可受到保留,且在WAC的自動執行時不會受到覆蓋,例如,在響應當前項目的文件的變更時。可替換地,通過在參數中指定這點,舊用戶標記碼被對應的新用戶標記碼所取代。用戶標記碼可具有些名稱屬性,其中這些名稱屬性用於合併過程以構成舊與新用戶標記碼間的對應。對應的新用戶標記碼可處於不同於舊用戶標記碼的順序,在這種情況下,內容合併器94模塊可重新排序舊用戶標記碼。這允許WAC實現靈活的網頁布局。例如,假設網頁布局定義主標題與側欄,且該側欄的位置由WAC的參數來指定。則當該位置受到改變時,內容合併器94將正確地重新排列這些布局區。
WAC處理器56的控制移除器86從第一標記碼集合移除WAC標籤。WAC處理器56通常保存WAC標籤,但是可選地,WAC標籤可通過在WAC標籤中指定給WAC處理器56的輸入參數來受到移除。從第一標記碼集合64移除WAC標籤可降低文件大小,以及移除敏感的參數信息,例如資料庫密碼。
WAC處理器56的文件寫入器88寫入合併碼於輸出文件。合併器的輸出可覆蓋原文件,或寫入不同文件。因為可能希望控制移除,所以在公布時,合併碼可寫入不同的文件。
WAC處理也可發生於單一位置,其中伺服器與客戶端功能位於單一計算機(未展示)。在此種情形之下,標記碼文件可在用以開發該標記碼的計算機上完全受到處理(即WAC執行發生於客戶端)。在處理之後,具有第一標記碼集合的文件可公布於標準網絡伺服器,以處理顯示請求。該處理可通過傳送上下文參數作為WAC處理器的輸入來控制。該上下文參數指定文件的生命周期階段(即產生,維護等)。位於開發計算機的WAC處理器完全處理標記碼以準備其顯示,以響應網絡伺服器所接收的請求。
雖然迄今所述的本發明的實例是在撰寫結束時受到處理,但當收到顯示網頁的請求時,WAC也可在執行時受到處理。
WAC可用以周期性自動更新網頁的內容。例如,如果網站包含具有產品信息的產品目錄,其中這些信息存儲於資料庫且每一天受到更新,則WAC可協助更新網頁以反映資料庫變更。網站的網頁的WAC可連接至該資料庫,及被用來抽取資料庫信息至網頁,且該網頁接著在網絡伺服器受到公布。在資料庫的每次更新之後,WAC處理器可用來從該資料庫再生索引網頁與所有產品網頁。如果沒有其它動態內容包含於該網頁,則產生的文件可以HTML來撰寫,或如果需要額外的動態內容,則(例如)可以JSP來撰寫。使用WAC來產生不常變化(即相對靜態)的內容可降低所需的處理量。如果在無WAC下使用JSP,則會在執行時針對請求的每一網頁都存取資料庫,而導致較慢的性能且需要更多計算機來維持可接受的性能。使用WAC會將運行時處理限制於產生經常改變的動態內容。
本發明的一種可能實現是使用文件類型定義(DTD)來指定WAC標籤,其中DTD是定義可用於XML文件的標籤及它們的有效值的規則。WAC的定義可使用XML模式,以指定用於將WAC插入網頁的標籤;Java庫,以開發WAC;與Java處理器,以產生標記碼於包含WAC的網頁。XML模式是表示數據模型的系統,以定義該數據的元素及屬性,與這些元素間的關係。標識符72,參數74,與控制動作76可作為元素實現,其中元素是XML結構構件,且具有啟始及結束標籤,而該二標籤間的信息稱為內容。
在此種實現之下,關於WAC的執行的信息,例如參數值與內容源碼位置,被包含作為WAC標籤的屬性。這允許WAC的嵌套,以致在第一WAC的執行時,第二嵌入的WAC可受到發現及執行,以包含其結果於第一WAC執行的結果。
WAC的DTD指定所有數據皆表示成為WAC標籤的XML屬性。WAC的DTD的完整實現展示於附錄A(wac.dtd)。因為網絡瀏覽器的正常行為是只顯示HTML標籤,所以當文件受到顯示時,所有WAC標籤皆被有效地隱藏。因此,如此使用XML達成相同於使用HTML批註的效果,且使得WAC可嵌套,而這在複雜網頁布局的產生上可能有用。
對於第一標記碼集合的HTML或XML解析,樹的生成產生文件對象模型(DOM),且該模型可用以控制WAC處理順序。
在此種可能實現之下,新WAC可通過實現Java類來產生。Java類是一組數據成員與方法,其定義特定對象。
基於此種實現的示範WAC的啟動展示於下文。
<?xml version=′1.0′encoding=″ISO-8859-1″?><html><head> <title>Listing of source</title> <body> <h4>Listing of source.</h4> <waccontrol xmlnswac=″umibm.comwac″name=″mod″ class=″wac.sample.Include″> <wacparameters><wacparam name=″include″value=″/source″ valuetype=″ref″/><wacparam name=″formatted″value=″true″/> <wacparam name=″numbered″value=″false″/ </wacparameters> </wacmarkup><waccontrol>!-- SIPO DP --dp/ </body> </html>標籤waccontrol標示WAC標籤的開始。此標籤指定要使用的WAC是稱為wac.sample.Include的Java類。此類將由WAC處理器56來執行。標籤wacparameters標示參數區的開始。其指定名稱為″include″的參數具有值″/source″,且這是由Include WAC來解譯,而意謂資源″source″要包含於HTML網頁。直到WAC受到處理及″source″的內容的HTML標記碼被產生,該網頁不包含″source″的內容。當該網頁受到處理時,WAC處理器讀取這些網頁且定位該網頁中WAC,傳送指定的參數給它們,執行它們,與合併它們的輸出回到該網頁。
對於Java實現,控制元素具有名稱,類與使能值。名稱是用於控制的獨特標識符,以致其可由其它控制來引用。類是實現該控制的Java類的名稱。設定使能值以決定是否該控制應再生其標記。下面是控制元素的示範結構。
!ELEMENT control(parameters,markup)
!ATTLIST controlid ID#REQUIREDclass CDATA#REQUIREDenabled(true|false)″true″
控制元素包含參數元素與標記元素,其中該參數元素包含用以設定屬性的參數,且該標記元素包含產生的標記。
參數元素包含用以設定控制屬性的參數。下面是參數元素的示範結構。
!ELEMENT parameters(param|paramarray)*
參數元素包含param元素,以定義單一控制屬性。Param屬性具有如下的示範結構。
!ELEMENT param EMPTY
!ATTLIST paramname CDATA#REQUIREDvalue CDATA#REQUIREDvaluetype(data|ref|object)″data″
param元素具有屬性名稱與屬性值。param元素也具有屬性值類型,且該屬性值類型可為數據(例如多個字符串),URL引用或另一元素。如果該屬性類型是URL,其可為絕對的,或開始於方案,例如″http″,或其可為相對的。相對URL引用相同項目的另一資源。
參數元素也包含param數組元素,且其具有概述於下文的示範結構。
!ELEMENT paramarray(paramvalue)*
!ATTLIST paramarrayname CDATA#REQUIREDvaluetype(data|ref|object)″data″
paramarray元素定義控制標號屬性。param數組具有類似於param元素的屬性名稱與屬性值類型。
Paramarray還具有paramvalue元素,且其示範結構概述於下。
!ELEMENT paramvalue EMPTY
!ATTLIST paramvaluevalue CDATA#required
paramvalue元素定義給定標號的帶標號屬性的值。paramvalue元素在param數組元素中的位置定義該標號。
標記元素包含控制元素所產生的標記。標記元素可包含任何有效的非WAC標記,以及控制與用戶標記元素,無論是直接地或間接地。產生的標記可由用戶通過禁止控制元素使能值來改變。可替換地,WAC標籤可從產生的標記中移除。
用戶標記元素允許用戶插入標記於WAC所產生的標記。當WAC再生該標記時,用戶標記元素的內容受到保存。用戶標記元素具有名稱,以標識指定其目的的元素。用戶標記元素可包含任何非WAC標記以及控制元素。
附錄A示範WAC.DTD!DOCTYPE eBAF-WAC-1.0[!--此DTD描述網絡撰寫控制,或簡寫為WAC。WAC是用以撰寫網頁的生產效率協助工具。WAC可用以簡化產生複雜標記的工作,或其可自動化繁複工作,例如當其所依賴的資源發生變化時更新標記。WAC在開發時執行。當文件被部署至其運行時環境時,所有WAC標籤皆可自該文件中受到移除。
WAC包含於文件,且該文件可為HTML,JSP,或通用XML。文件是包含相關的文件與資源的項目的一部分。例如,WAC可用以從網站地圖資源產生導航條。項目與文件是WAC的執行上下文的一部分。在執行的過程中,WAC可讀取資源,更新或刪除現有的資源,與產生新的資源。用以嵌入WAC於文件的標籤方案符合XML。WAC標籤包含的所有非標記數據(亦即元數據)皆表示成為元素屬性,以致包含WAC的文件可通過普通網絡瀏覽器來顯示。相對地,WebBot與DTC存儲元數據於HTML批註,而這些批註無法嵌套。因為其允許WAC嵌套並因此組合,所以使用XML元素更具威力。例如,網頁布局WAC可包含嵌套的導航WAC。
--
!--control元素控制是從參數產生標記的JavaBean。控制類似於參數化宏。這些參數可為簡單的數據,例如數字或字符串,或對位於項目中的相同文件或資源的其它控制的引用。
控制通過展現用戶界面來簡化網絡撰寫,且該用戶界面協助用戶設定參數。用戶界面通過JavaBean定義,且可為屬性表單,以及可選的定製屬性編輯器,或定製器。當控制受到選擇以供編輯時,編輯器應展現屬性表單或定製器給用戶。
控制可用以自動化繁複工作,例如增加行號至列表,或使得用戶無需能夠撰寫複雜的HTML與JSP標籤,或Java小腳本。
control元素具有下列屬性名稱(name)用於控制的獨特標識,以致其可為其它控制所引用類(class)實現控制的Java類的名稱使能(enabled)如果控制應再生其標記,則為真。
id屬性是標識,以致控制可為其它控制所參考。
類屬性是實現控制的類的完全修飾名稱。WAC處理器定位類的方式未受到定義。
如果想要的話,使能屬性允許用戶禁止控制。例如,用戶可能希望暫時改變產生的標記。
control元素包含parameters元素與markup元素,其中parameters元素用以設定JavaBean屬性,且markup元素包含產生的標記。
--
!ELEMENT control(parameters,markup)
!ATTLIST controlid ID#REQUIREDclass CDATA#REQUIREDenabled(true|false)″true″
!--parameters元素parameters元素包含用以設定控制屬性的這些參數。因為控制是JavaBean,其屬性可為單值或帶有標號。
parameters元素可包含零或更多param或paramarray元素。
param元素定義單值屬性。
paramarray元素定義帶標號屬性。
--
!ELEMENT parameters(param|paramarray)*
!--param元素param元素定義控制屬性。其包含下列屬性名稱(name)屬性名稱值(value)屬性名稱值類型(valuetype)屬性值類型,其可為下列其中的數據(data)值是簡單數據,例如數字或字符串引用(ref)值是URL對象(object)值是此文件中另一元素的標識ref類型的值為URL。URL可為絕對或相對的。如果URL開始於方案,例如″http″,則其為絕對的。否則其是相對的。
相對的URL參考項目的另一資源。如果URL開始於″/″,則其是相對於項目根部。否則,URL是相對於文件。如果引用的資源受到移動或重新命名,或如果文件受到移動,則符合WAC的網站管理工具應更新此值。
對象類型的值是文件的另一元素的標識。如果引用的元素的表示受到改變,則符合WAC的編輯器應更新此值。
--
!ELEMENT param EMPTY
!ATTLIST paramname CDATA#REQUIREDvalue CDATA#REQUIREDvaluetype(data|ref|object)″data″
!--paramarray元素paramarray元素定義控制帶標號屬性。其包含下列屬性名稱(name)屬性名稱值類型(valuetype)屬性值類型(請參看param元素)paramarray元素包含零或更多paramvalue元素,以定義帶標號屬性的值。
--
!ELEMENT paramarray(paramvalue)*
!ATTLIST paramarrayname CDATA#REQUIREDvaluetype(data|ref|object)″data″
!paramvalue元素paramvalue元素定義給定索引的帶標號屬性的值。paramvalue組件在paramarray元素的位置定義該索引。
paramvalue元素具有下列屬性值(value)屬性值--
!ELEMENT paramvalue EMPTY
!ATTLIST paramvalue
value CDATA#REQUIRED
!--markup元素markup元素包含控制所產生的標記。markup元素可包含任何有效的非WAC標記,且也可包含,直接或間接地,control與usermarkup元素。
因為當標記受到再生時,用戶對於標記所做的任何變更皆會受到取代,所以編輯器應視未包含於usermarkup元素的任何標記為受防寫的。為保存用戶標記,其必須包含於usermarkup元素。
如果用戶需要改變產生的標記,則存在兩個選擇。
首先,用戶可通過設定其使能屬性為假以禁止控制。符合WAC的編輯器應提供一種方式,以致用戶可使能或禁止所有或選擇的控制。
第二,用戶可從文件中移除圍繞產生的標記的WAC標籤。符合WAC的編輯器應提供一種方式,以致用戶可移除所有或選擇的控制。
--
!ELEMENT markup ANY
!--usermarkup元素usermarkup元素允許用戶插入標記於WAC所產生的標記。當WAC再生該標記時,usermarkup元素的內容通常受到保存。
usermarkup元素具有下列屬性名稱(name)指定其目的的元素的名稱雖然usermarkup元素的內容通常受到保存,當WAC再生該標記時,它們的相對順序可能改變。除此的外,新usermarkup元素可受到產生,且現有的組件可受到刪除。WAC產生usermarkup元素,且WAC處理器通過匹配名稱屬性來合併於現有內容。
usermarkup元素可包含任何非WAC標記與control元素。
--
!ELEMENT usermarkup ANY
!ATTLIST usermarkup name CDATA″″
]
權利要求
1.一種為伺服器上的多個文件自動產生顯示格式化指令以用來在運行時顯示這些多個文件於客戶端的方法,其中該伺服器具有多個格式化控制與文件,該文件具有第一格式化指令集合,該第一格式化指令集合包含多個引用,每一引用指示這些多個格式化控制中的一個控制與這些多個文件中的一個文件,該方法包含(A)處理所述文件,以定位這些多個引用的每一個來形成樹;(B)根據這些多個引用中的一個引用,執行這些多個格式化控制中的一個控制,以基於在所述這些多個引用中的一個引用中所指示的文件,產生第二格式化指令集合;(C)將所述第二格式化指令集合融入輸出文件;與(D)針對所述樹的這些多個引用中的每一引用重複(B)至(C);其中在這些多個引用中所指示的這些多個格式化控制中的每一個都在運行時間之前被執行。
2.如權利要求1所述的方法,其中這些多個格式化控制根據它們在該樹中的深度,依照深度優先順序被執行。
3.如上述權利要求中任何一項所述的方法,其中第一格式化指令集合與所述第二格式化指令集合都是以標記語言來撰寫。
4.如上述權利要求中任何一項所述的方法,進一步包含在執行所述樹中的這些多個引用中的每一個引用之後,從第一格式化指令集合中移除這些多個引用。
5.如上述權利要求中任何一項所述的方法,其中格式化指令是自動產生或用戶產生的類型,所述第一格式化指令集合具有此處所指的所述自動產生與用戶產生的類型,且其中步驟(C)包含(I)將在所述第二格式化指令集合中的被自動產生的格式化指令標明為所述自動產生的類型;(II)將在所述第二格式化指令集合中的由用戶產生的格式化指令標明為所述用戶產生的類型;與(III)根據格式化指令的類型與第一格式化指令集合,將自動產生的格式化指令與用戶產生的格式化指令插入到該文件中。
6.如權利要求5所述的方法,其中步驟(III)包含(a)確定第一格式化指令集合的部分是否對應於所述第二格式化指令集合的部分;(b)插入所述第二格式化指令集合的未對應於第一格式化指令集合的所有部分;(c)如果對應於第一格式化指令集合的部分的所述第二格式化指令集合的部分是自動產生類型,則用所述第二格式化指令集合的對應部分來取代第一格式化指令集合的對應部分;與(d)如果對應於第一格式化指令集合的部分的該第二格式化指令集合的部分是用戶產生類型,則根據所述第二格式化指令集合的對應部分的格式來重新格式化第一格式化指令集合的所述對應部分。
7.如權利要求6所述的方法,其中步驟(d)包含(i)在用戶產生類型的第一格式化指令集合的對應部分與用戶產生類型的所述第二格式化指令集合的對應部分之間,產生對應;與(ii)對應所述對應用戶產生類型的第一格式化指令集合的順序與所述對應用戶產生類型的第二格式化指令集合的順序。
8.如上述權利要求中任何一項所述的方法,其中該文件是多個文件中的一個文件,且進一步包含(E)在步驟(A)之前,檢測所述多個文件中的一個文件的變化;與(F)針對所述多個文件中的每一文件重複(A)至(D)。
9.一種執行上述權利要求中任何一項所述的方法的伺服器計算機系統。
10.一種電腦程式產品,存儲在計算機可讀存儲介質上,用來在計算機系統上執行時,指揮該計算機系統執行上述權利要求中任何一項所述的方法。
全文摘要
本發明提供一種為伺服器上的多個文件自動產生顯示格式化指令以用來在運行時顯示這些多個文件於客戶端的方法,其中該伺服器具有多個格式化控制與文件,該文件具有第一格式化指令集合,該第一格式化指令集合包含多個引用,每一引用指示這些多個格式化控制中的一個控制與這些多個文件中的一個文件,所述方法包含(A)處理所述文件,以定位這些多個引用的每一個來形成樹;(B)根據這些多個引用中的一個引用,執行這些多個格式化控制中的一個控制,以基於在所述這些多個引用中的一個引用中所指示的文件,產生第二格式化指令集合;(C)將所述第二格式化指令集合融入輸出文件;與(D)針對所述樹的這些多個引用中的每一引用重複(B)至(C);其中在這些多個引用中所指示的這些多個格式化控制中的每一個都在運行時間之前被執行。
文檔編號G06F13/00GK1545664SQ02811547
公開日2004年11月10日 申請日期2002年5月28日 優先權日2001年6月15日
發明者阿瑟·G·賴曼, 阿瑟 G 賴曼 申請人:國際商業機器公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀