語言

NamespaceSupport.PushContext 方法

定義

建立一個新的命名空間上下文。

[Android.Runtime.Register("pushContext", "()V", "GetPushContextHandler")]
public virtual void PushContext();
[<Android.Runtime.Register("pushContext", "()V", "GetPushContextHandler")>]
abstract member PushContext : unit -> unit
override this.PushContext : unit -> unit
屬性

備註

建立一個新的命名空間上下文。 新上下文會自動繼承其父上下文的宣告,同時也會追蹤在此上下文中所做的宣告。

事件回調程式碼應該每個元素啟動一次新的上下文。 這表示要準備好在兩個地方中任一宣布。 對於不包含命名空間宣告的元素, <em>ContentHandler.startElement()</em> 回調是正確的位置。 對於帶有此類宣告的元素,則是在第一個 <em>ContentHandler.startPrefixMapping()</em> 回調中完成的。 可以使用布林旗標來追蹤上下文是否已經開始。 當呼叫這兩個方法時,會檢查旗標是否需要啟動新的上下文。 如果是這樣,它會開始上下文並設定旗幟。 當 <em>ContentHandler.startElement()</em> 完成這個操作後,它總是會清除該旗標。

通常,SAX 驅動程式會在每個 XML 元素的開頭推送一個新的上下文。 接著他們會先對屬性進行一次處理,處理所有命名空間宣告,將 <>ContentHandler.startPrefixMapping()</em> 作為回調。 接著進行第二次處理,以確定所有屬性及元素名稱的命名空間限定名稱。 最後,em ContentHandler.startElement()</em> 回調的所有資訊<>都已取得,因此可以進行回調。

命名空間支援物件總是以已生效的基礎上下文開始:在此上下文中,僅宣告「xml」前綴。

的 org.xml.sax.helpers.NamespaceSupport.pushContext()Java 檔。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於

另請參閱