第一篇:分布式文件系統命名空間解析
分布式文件系統命名空間解析
近年,微軟對其分布式文件系統(Distributed File System,DFS)做了很多改良,其中的一項技術對文件系統資源提供了統一視圖。DFS重新定向了來自UNC途徑的請求,其中一個網絡驅動映射到請求資源所在的網絡共享。這樣的結果是你可以添加文件服務器到網絡或者不用影響用戶訪問文件的方式就能強化現有的文件服務器。重定向請求到文件實際位置的UNC途徑就是DFS命名空間。本質上,DFS命名空間是為用戶呈現文件服務器資源集中化視圖的統一命名空間。一個DFS命名空間由很多部分組成。DFS根DFS命名空間本質上是分等級的,最頂端的是DFS根。在實際運用中,可以認為根和命名空間是一樣的,因為根常用來指代整個命名空間。DFS根是一個共享文件,它必須存在于NTFS卷中。DFS根鏈接到一個或多個根目標,而根目標則鏈接到一個文件服務器上的UNC共享。一個DFS根可以鏈接的根目標數量由DFS根相關的命名空間類型決定。DFS命名空間有兩個類型:獨立命名空間和基于域的命名空間。獨立命名空間存儲他們在主機服務器注冊表中的配置信息。基于域的命名空間存儲在活動目錄數據庫中的信息。這個區別影響連接到DFS根的根目標數量。獨立DFS根只能包含一個單一根目標,而基于域的DFS根只包含通過多個服務器分離的多個根目標。下面的圖1展示了一個基于域的DFS根。很明顯這是基于域的,因為這個根的名字(//lab.com/namespace)反映了域的名字。中心方格顯示兩個UNC途徑,并且兩個途徑都像根目標一樣鏈接到DFS根。圖1:DFS根連接到一個或多個根目標DFS命名空間里的文件或鏈接在分級中的下一個元素是文件或鏈接(正如它有時候所指的)。在DFS命名空間中的每個文件都映射到鏈接目標,正如DFS根映射到根目標。鏈接目標指向一個映射到物理文件夾的UNC共享。在圖2 中,三個文件(文件
1、文件2和文件3)都被定義在DFS根下(注意,我已經選了文件1)。控制臺的中央窗口列出了映射到文件的鏈接目標。圖2:每個文件都映射到鏈接目標如你所見,這個鏈接目標不過是一個映射到共享文件的UNC途徑。另外要注意,在控制臺的中央窗口中,為鏈接目標展示了各種各樣的信息,包括類型、途徑和提交狀態。由于一個文件可以和不同服務器上的多個鏈接目標連接,所以提交狀態存在。這樣做了之后,你可以為鏈接目標創建一個復制組,且復制組會保持多種文件內容與其它文件之間的同步。圖3展示的就是一個有多個鏈接目標的文件。圖3:多個鏈接目標兩個鏈接目標的提交狀態都是有效的(Enabled)。這意味著DFS可以向任意一個目標指定資源請求。因此,如果一個文件服務器必須離線維修,這個服務器的提交狀態就變成無效,而DFS會停止向該服務器發送請求,直到提交狀態再次變為有效。NTFS級別的DFS命名空間上述因素組成了DFS命名空間。在圖4中,你可以看到NTFS級別的命名空間是什么樣子的。圖4:驅動C盤上的DFS內容注意名為Dfsroots的文件,它下面的那個文件就叫Namespace(命名空間)。當我創建根時DFS自動創建這些文件。Namespace文件實際上是共享的,但是文件系統隱藏了該共享。最后要注意,在命名空間下面有到文件
1、文件2和文件3的快捷鍵.這些都是在DFS管理控制臺中指定的目標文件。在圖的底部是這三個文件夾的另一個列表,它實際上是在驅動C盤上的共享文件。我剛剛提到的快捷鍵映射到這些共享文件夾。
第二篇:SAX解析xml時命名空間以及參數問題
SAX解析xml時命名空間以及參數問題
本文以實例形式解釋下java利用SAX解析xml時命名空間及其參數問題。
(關于xml使用及命名空間的詳細展開,可以參考W3school官方教程,這里提供的是關于主題的敏捷版)
1.命名空間直觀感受
首先對命名空間有個直觀感受,請看下面的未使用命名空間的xml代碼。清單1-1 :books.xml
[html] view plaincopyprint?
1. 2.
4.
8.
然后請看下面使用了命名空間的xml代碼。清單1-2: NameSpaceDemo.xml
[html] view plaincopyprint?
1. 2. 3.
4. 5.
9. 10.
可以看出命名空間的形式,就是如下圖所示結構:
這里關鍵幾個概念是:
命名空間標識符NamespaceIdentifier
命名空間與java中包機制類似,用來避免在同一文件中包含相同名稱但結構不同的元素時可能出現的沖突。命名空間標識符可以使用URL以及其他方式,本例中對應的標識符是http://www.tmdps.cn http://www.tmdps.cn 命名空間前綴Prefix
前綴就是命名空間的快捷引用方式,它也稱作命名空間的別名(alias)。本例中對應的是 jd
不帶前綴和命名空間的本地名稱LocalName(Part)本例中是booktitle author。
帶有別名前綴的限定名QualifiedName(qName)
由別名前綴,冒號以及元素名稱組成,這些名稱很清晰,可被解析器解析和驗證。本例中是jd:book jd:title
默認命名空間
就是省去前綴的命名空間,這樣在后續的書寫時就不用帶上前綴了。例如本例中的
使用的就是默認命名空間。
2.java SAX解析xml參數問題
這里尤其以方法,public void startElement(String uri, String localName, String qName, Attributes attributes)為例.uri-代表命名空間的標識符,當元素沒有命名空間或者解析器的命名空間支持特性沒有打開時是空串。注意,可以使用SAXParserFactory的public void setNamespaceAware(boolean awareness)打開支持命名空間特性。
localName代表帶有前綴的限定名,當限定名不能獲取時是空串。
attributes-與元素相關的屬性,如果沒有屬性,那么就是空的屬性對象。下面給出解析上面帶有命名空間的xml文檔的實例代碼,通過觀察結果,更好的理解上述參數。
代碼清單:SAXTest.java
[html] view plaincopyprint?
1.package com.learningjava;2.3.import java.io.File;4.import java.util.ArrayList;5.import javax.xml.parsers.SAXParser;6.import javax.xml.parsers.SAXParserFactory;7.import org.xml.sax.Attributes;8.import org.xml.sax.SAXException;9.import org.xml.sax.helpers.DefaultHandler;10.11./** 12.* This program illustrate using SAX to parser xml 13.* @author wangdq 14.* 2011-11-7 15.*/ 16.public class SAXTest { 17.public static void main(String[] args)throws Exception { 18.19.//step1 : get a parser 20.SAXParserFactory factory = SAXParserFactory.newInstance();21.factory.setNamespaceAware(true);//performe Namespace processing 22.SAXParser parser = factory.newSAXParser();23.//step2: create a handler 24.DefaultHandler handler = new DefaultHandler(){ 25.26.@Override 27.public void startElement(String uri, String localName, 28.String qName, Attributes attributes)throws SAXException 29.{ 30.System.out.format(“uri: %-25stlocalname: %-10stqname: %-10s%n”,uri,localName,qName);31.if(localName.equals(“title”)){ 32.title = true;33.} 34.} 35.@Override 36.public void endElement(String namespaceURI, String localName, String qName)37.throws SAXException { 38.// End of processing current element 39.if(title){ 40.title = false;41.} 42.} 43.@Override 44.public void characters(char[] ch, int start, int length){ 45.// Processing character data inside an element 46.if(title){ 47.String bookTitle = new String(ch, start, length);48.bookList.add(bookTitle);49.} 50.} 51.@Override 52.public void endDocument()throws SAXException{ 53.System.out.println(“we have books: ”+bookList);54.} 55.ArrayList
運行結果
uri:
localname: books qname: books uri: http://www.tmdps.cn
localname: book
qname: jd:book uri: http://www.tmdps.cn
localname: title qname: jd:title uri: http://www.tmdps.cn
localname: author
qname: jd:author uri: http://www.tmdps.cn localname: book
qname: book uri: http://www.tmdps.cn localname: title
qname: title uri: http://www.tmdps.cn localname: author
qname: author we have books: [Harry Potter, Learning XML]
通過觀察結果,相信現在對命名空間及SAX解析時的參數有了一個較好的理解。
第三篇:C# System命名空間簡介
System 命名空間 類
Activator 包含特定的方法,用以在本地或從遠程創建對象類型,或獲取對現有遠程對象的引用。
AppDomain 表示應用程序域,它是一個應用程序在其中執行的獨立環境。不能繼承此類。AppDomainSetup 表示可以添加到 AppDomain 的實例的程序集綁定信息。
AppDomainUnloadedException 在嘗試訪問已卸載的應用程序域時引發的異常。ApplicationException 發生非致命應用程序錯誤時引發的異常。ArgumentException 在向方法提供的其中一個參數無效時引發的異常。
ArgumentNullException 當將空引用(在 Visual Basic 中為 Nothing)傳遞給不接受它作為有效參數的方法時引發的異常。
ArgumentOutOfRangeException 當參數值超出調用的方法所定義的允許取值范圍時引發的異常。
ArithmeticException 因算術運算、類型轉換或轉換操作中的錯誤而引發的異常。
Array 提供創建、操作、搜索和排序數組的方法,因而在公共語言運行庫中用作所有數組的基類。
ArrayTypeMismatchException 當試圖在數組中存儲類型不正確的元素時引發的異常。AssemblyLoadEventArgs 為 AssemblyLoad 事件提供數據。Attribute 自定義屬性的基類。
AttributeUsageAttribute 指定另一特性類的用法。無法繼承此類。
BadImageFormatException 當 DLL 或可執行程序的文件圖像無效時引發的異常。BitConverter 將基礎數據類型與字節數組相互轉換。Buffer 操作基元類型的數組。
CannotUnloadAppDomainException 卸載應用程序域的嘗試失敗時引發的異常。CharEnumerator 支持循環訪問 String 并讀取它的各個字符。
CLSCompliantAttribute 指示程序元素是否符合公共語言規范(CLS)。無法繼承此類。Console 表示控制臺應用程序的標準輸入流、輸出流和錯誤流。無法繼承此類。ContextBoundObject 定義所有上下文綁定類的基類。
ContextMarshalException 在嘗試將對象封送過上下文邊界失敗時引發的異常。ContextStaticAttribute 指示靜態字段的值是特定上下文的唯一值。Convert 將一個基本數據類型轉換為另一個基本數據類型。DBNull 表示空值。Delegate 表示委托,委托是一種數據結構,它引用靜態方法或引用類實例及該類的實例方法。DivideByZeroException 試圖用零除整數值或十進制數值時引發的異常。
DllNotFoundException 當未找到在 DLL 導入中指定的 DLL 時所引發的異常。
DuplicateWaitObjectException 當對象在同步對象數組中不止一次出現時引發的異常。EntryPointNotFoundException 因不存在項方法而導致加載類的嘗試失敗時引發的異常。Enum 為枚舉提供基類。
Environment 提供有關當前環境和平臺的信息以及操作它們的方法。不能繼承此類。EventArgs EventArgs 是包含事件數據的類的基類。Exception 表示在應用程序執行期間發生的錯誤。
ExecutionEngineException 當公共語言運行庫的執行引擎中發生內部錯誤時引發的異常。無法繼承此類。
FieldAccessException 當試圖非法訪問類中的私有字段或受保護字段時引發的異常。FlagsAttribute 指示可以將枚舉作為位域(即一組標志)處理。
FormatException 當參數格式不符合調用的方法的參數規范時引發的異常。GC 控制系統垃圾回收器(一種自動回收未使用內存的服務)。
IndexOutOfRangeException 試圖訪問索引超出數組界限的數組元素時引發的異常。無法繼承此類。
InvalidCastException 因無效類型轉換或顯式轉換引發的異常。
InvalidOperationException 當方法調用對于對象的當前狀態無效時引發的異常。
InvalidProgramException 當程序包含無效 Microsoft 中間語言(MSIL)或元數據時將引發的異常。通常這表示編譯器中出現錯誤。
LoaderOptimizationAttribute 用于為可執行應用程序的主方法設置默認的加載程序優化策略。LocalDataStoreSlot 封裝內存槽以存儲本地數據。無法繼承此類。
MarshalByRefObject 允許在支持遠程處理的應用程序中跨應用程序域邊界訪問對象。Math 為三角函數、對數函數和其他通用數學函數提供常數和靜態方法。MemberAccessException 訪問類成員的嘗試失敗時引發的異常。
MethodAccessException非法嘗試訪問類中的私有方法或受保護的方法時引發的異常。MissingFieldException 試圖動態訪問不存在的字段時引發的異常。
MissingMemberException 試圖動態訪問不存在的類成員時引發的異常。MissingMethodException 試圖動態訪問不存在的方法時引發的異常。
MTAThreadAttribute 指示應用程序的 COM 線程模型為多線程單元(MTA)。
MulticastDelegate 表示多路廣播委托;即,其調用列表中可以擁有多個元素的委托。
MulticastNotSupportedException 當試圖合并不可合并的委托類型的兩個實例時引發的異常,除非操作數中有一個是空引用(在 Visual Basic 中為 Nothing)。無法繼承此類。NonSerializedAttribute 指示可序列化類的某個字段不應被序列化。無法繼承此類。
NotFiniteNumberException 當浮點值為正無窮大、負無窮大或非數字(NaN)時引發的異常。
NotImplementedException 在無法實現請求的方法或操作時引發的異常。NotSupportedException 當調用的方法不受支持,或試圖讀取、查找或寫入不支持調用功能的流時引發的異常。
NullReferenceException 嘗試取消引用空對象引用時引發的異常。
Object 支持.NET Framework 類層次結構中的所有類,并為派生類提供低級別服務。這是.NET Framework 中所有類的最終基類;它是類型層次結構的根。ObjectDisposedException 對已處置的對象執行操作時所引發的異常。ObsoleteAttribute 標記不再使用的程序元素。無法繼承此類。
OperatingSystem 表示有關操作系統的信息,如版本和平臺標識符。OutOfMemoryException 沒有足夠的內存繼續執行程序時引發的異常。OverflowException 在選中的上下文中所進行的算術運算、類型轉換或轉換操作導致溢出時引發的異常。
ParamArrayAttribute 指示方法在調用中將允許參數的數目可變。無法繼承此類。PlatformNotSupportedException 當功能未在特定平臺上運行時所引發的異常。
Random 表示偽隨機數生成器,一種能夠產生滿足某些隨機性統計要求的數字序列的設備。RankException 將維數錯誤的數組傳遞給方法時引發的異常。
ResolveEventArgs 為 TypeResolve、ResourceResolve 和 AssemblyResolve 事件提供數據。SerializableAttribute 指示一個類可以序列化。無法繼承此類。StackOverflowException 掛起的方法調用過多而導致執行堆棧溢出時引發的異常。無法繼承此類。
STAThreadAttribute 指示應用程序的 COM 線程模型是單線程單元(STA)。String 表示文本,即一連串 Unicode 字符。
SystemException 為 System 命名空間中的預定義異常定義基類。ThreadStaticAttribute 指示靜態字段的值對于每個線程都是唯一的。TimeZone 表示時區。Type 表示類型聲明:類類型、接口類型、數組類型、值類型和枚舉類型。
TypeInitializationException 作為由類初始值設定項引發的異常周圍的包裝引發的異常。無法繼承此類。
TypeLoadException 類型加載失敗發生時引發的異常。TypeUnloadedException 試圖訪問已卸載的類時引發的異常。
UnauthorizedAccessException 當操作系統因 I/O 錯誤或指定類型的安全錯誤而拒絕訪問時所引發的異常。
UnhandledExceptionEventArgs 為以下情況下引發的事件提供數據:存在一個不是由應用程序域處理的異常。
Uri 提供統一資源標識符(URI)的對象表示形式和對 URI 各部分的輕松訪問。
UriBuilder 為統一資源標識符(URI)提供自定義構造函數,并修改 Uri 類的 URI。UriFormatException 當檢測到無效的統一資源標識符(URI)時引發的異常。ValueType 提供值類型的基類。
Version 表示公共語言運行庫程序集的版本號。無法繼承此類。WeakReference 表示“弱引用”,即在引用對象的同時仍然允許對該對象進行垃圾回收。接口
IAppDomainSetup 表示可以添加到 AppDomain 的實例的程序集綁定信息。IAsyncResult 表示異步操作的狀態。
ICloneable 支持克隆,即用與現有實例相同的值創建類的新實例。
IComparable 定義通用的比較方法,由值類型或類實現以創建類型特定的比較方法。IConvertible 定義特定的方法,這些方法將實現引用或值類型的值轉換為具有等效值的公共語言運行庫類型。
ICustomFormatter 定義一種方法,它支持對象值的自定義(用戶定義)格式設置。IDisposable 定義一種釋放分配的非托管資源的方法。IFormatProvider 提供用于檢索控制格式化的對象的機制。IFormattable 提供將對象的值格式化為字符串表示形式的功能。IServiceProvider 定義一種檢索服務對象的機制,服務對象是為其他對象提供自定義支持的對象。
_AppDomain 表示應用程序域,它是一個應用程序在其中執行的獨立環境。結構
ArgIterator 表示變長參數列表;即采用可變數量的參數的函數的參數。Boolean 表示布爾值。
Byte 表示一個 8 位無符號整數。Char 表示一個 Unicode 字符。DateTime 表示時間上的一刻,通常以日期和當天的時間表示。Decimal 表示十進制數。
Double 表示一個雙精度浮點數字。Guid 表示全局唯一標識符(GUID)。Int16 表示 16 位有符號的整數。Int32 表示 32 位有符號的整數。Int64 表示 64 位有符號的整數。
IntPtr 用于表示指針或句柄的平臺特定類型。RuntimeArgumentHandle 引用變長參數列表。
RuntimeFieldHandle 使用內部元數據標記表示一個字段。
RuntimeMethodHandle RuntimeMethodHandle 是方法的內部元數據表示形式的句柄。RuntimeTypeHandle 表示使用內部元數據標記的類型。SByte 表示 8 位有符號整數。Single 表示一個單精度浮點數字。TimeSpan 表示一個時間間隔。
TypedReference 描述既包含指向某位置的托管指針,也包含該位置可能存儲的類型的運行時表示形式的對象。
UInt16 表示 16 位無符號整數。UInt32 表示 32 位無符號整數。UInt64 表示 64 位無符號整數。
UIntPtr 用于表示指針或句柄的平臺特定類型。
Void 指示不返回值的方法,即具有 void 返回類型的方法。委托
AssemblyLoadEventHandler 表示處理 AppDomain 的 AssemblyLoad 事件的方法。AsyncCallback 引用在異步操作完成時調用的回調方法。
CrossAppDomainDelegate 由 DoCallBack 使用,用于跨應用程序域的調用。EventHandler 表示將處理不包含事件數據的事件的方法。
ResolveEventHandler 表示處理 AppDomain 的 TypeResolve、ResourceResolve 和 AssemblyResolve 事件的方法。
UnhandledExceptionEventHandler表示將處理事件的方法,該事件由應用程序域不處理的異常引發。枚舉
AttributeTargets 指定可以對它們應用特性的應用程序元素。DayOfWeek 指定一周的某天。
Environment.SpecialFolder 指定用于檢索系統特殊文件夾的目錄路徑的枚舉常數。LoaderOptimization 一個枚舉,它與 LoaderOptimizationAttribute 類一起使用為可執行文件指定加載程序優化。
PlatformID 描述程序集所支持的平臺。TypeCode 指定對象的類型。
UriHostNameType 為 Uri.CheckHostName 方法定義主機名類型。UriPartial 為 Uri.GetLeftPart 方法定義 URI 的各部分。
第四篇:使用DFS創建命名空間
使用DFS創建命名空間
如果想把零散的共享資源組織起來,可以使用DFS創建命名空間。以下是win7之家所介紹的建命名空間的步驟。
步驟1:打開【DFS管理】窗口,右擊【命名空間】結點,執行【新建命名空間】命令,如下圖所示。
新建命名空間
步驟2:windows7系統下載彈出【新建命名空間向導】對話框,根據向導提示填寫相關的信息,即可順利地新建命名空間。
第五篇:解析解夢空間
解析《盜夢空間》
有一種電影因為時空的不斷變化而顯得高深莫測,可能在你看第一遍時只了解了一個大概,看兩三遍時才初步明白其中的玄機,而對于其中的一些細節可能還需要再去反復觀看推敲才能獲得完滿的答案。往往這類電影需要編劇和導演有很強的邏輯能力和撐控力,剪輯也頗費心思,同時還要冒著觀眾不買帳的風險,所以這類電影少之又少,而成功的作品更是鳳毛麟角,然而電影《盜夢空間》就是這樣一部成功的特例。很多朋友都看過這部電影,然而有幾人不糾結于其中的空間變化之中呢?至少,我是想弄明白這些迷團的。于是,在看了幾遍后,再加上查看一些資料,這部電影的脈絡逐漸在我眼前清晰起來……
《盜夢空間》(《Inception》)就好象是一部玄幻小說,你必須接受它里面的無數天馬行空的設定;但是它是最好的玄幻小說,因為在它的設定下情節無懈可擊。所以首先要解釋片中提到的所有設定:(網絡資料)
1.首先,片中一共有六層世界。如果我們把片子中小組計劃的現實世界作為參照物的話,按照做夢依次向上分別是:現實世界,第一層夢境,第二層夢境,第三層夢境,第四層夢境,limbo(迷失域)。
2.正常人活動在現實世界,做夢的時候在第一層夢境。如果要進入第二層夢境,也就是夢里的夢,必須要服用一般性藥物。在服用一般性藥物的情況下,要從夢中醒來(不管是第一層還是第二層)有兩種方法:第一種就是所謂的‘kick’,也就是重力下墜的沖擊。第二種就是被殺死。當然,等藥物效果過期也是一種不是辦法的辦法。
3.如果要進入第三層夢境,也就是夢里的夢里的夢,一般性藥物就無效了,必須要加強型藥物。但是加強型藥物的副作用是如果在夢里被殺死不能醒來,而會進入Limbo(后面解釋什么是limbo),所以只能用 Kick的方式來蘇醒。
4.所謂的Synchronize a kick(協同刺激),也就是說要在各層同時刺激才能把夢中人喚醒。比如說對于在第四層夢境活動的人需要在第一至四層同時Kick(刺激)才能使其在第一層蘇醒;如果只在第三和第四層Kick(刺激)則其會在第三層蘇醒;而如果中間有某層沒有同時Kick(刺激),比如只在第一,第二和第四層Kick(刺激)或者只在第一和第二層Kick(刺激),則活動在第四層的夢中人不會蘇醒,這也就是所謂的Miss a kick(錯過刺激)。所以當片中小組計劃侵入深層夢境的時候,每一層必須留人醒著負責Kick(刺激),而且用音樂的結束來協調同時Kick(刺激)的時刻。
5.層與層之間的時間以大約二十倍的數量延緩。在臺詞中給出的約數是現實世界十小時的航班,在第一層夢境是大約一個星期,在第二層夢境是大約六個月,而在第三層夢境是大約十年。
6.Inception的片名,直譯是開啟,在電影里面是一個盜夢術語,不是指在夢中偷竊情報,而是指把某種想法植入目標人物使得他覺得這想法是自己本來就有的。而Inception必須至少要在第三層完成。這是有原因的,我們可以在片中目標人物的夢中看到,第一層夢境很淺,意識很多,是整個城市,第二層是一個酒店,到了第三層只有白茫茫大雪里的一個堡壘。在意識越少的夢境里面植入效果越強。
7.每個夢都有一個夢主(Dreamer),他和別人分享自己的夢境。夢境中的場景可以由專門的設計師設計然后告訴夢主的,所以設計師不一定是夢主。理論上來說進入這個夢境的人都會帶來自己的一些意識投影,但是除了目標人物之外其他人都知道自己在做夢所以意志不會被迷惑。而設計師設計的夢境不能太離譜有不現實的場景,否則目標人物就會意識到自己在做夢,他的投影會對侵入到他夢境的其他人發動進攻。當然,如果目標人物的投影是經過特殊防盜夢訓練的話,即使夢境場景很真實侵入者也會被投影圍攻。
8.迷失域(Limbo)不是一個夢境,也不因人而異。只有在服用加強型藥物而且又在夢境中死去時才能進入。Limbo里面時間無窮盡。而且這個世界里只有之前到過這里的人留下的一些場景碎片,在日本人去之前只有道姆夫婦到過,所以開頭結尾日本人的迷失域里的房子和之前道姆對他進行盜夢時給他造的一樣。進到迷失域里面如果死亡會回到現實,但是問題是在迷失域記憶會喪失記不得這種方法,所以進入迷失域是不得已的選擇。
9.夢可以嫁接。也就是說A、B進入C的第一層夢境(這一層的夢主為C)之后B可以帶A進入B的第二層夢境(這一層的夢主為B)。
設定大致就是這樣,下面我們來看情節。
按照時間順序,首先是道姆和他女人的事情。這兩個人是夢境世界的先驅者,當年結婚時許諾要一起變老,對于夢境世界的共同追求使得他們在自己身上試驗。他們在實驗中進入了女人為夢主的第四層夢境。人的第三層夢境世界東西就很少了,第四層更是什么都沒有。因為只有兩個人實驗所以前面幾層沒留人不能幫他們kick,而由于時間延緩的效應,在現實中入睡一天在第四層就是五十年。所以他們在第四層夢境世界中攜手共老,閑暇之時只有隨便創造東西玩。五十年之后他們在夢境中老死了。以為他們是服用了加強型藥物的,所以雙雙進入了Limbo迷失域。迷失域中女人貪戀著無時間盡頭的廝守就認為這是她想要的空間,不想回現實,而道姆先生卻想著自己的孩子想回現實。最終說服了女人和他一起臥軌自殺,他也不確定這樣就能從limbo脫身,所以自殺前把懷疑一切,嘗試一切的想法灌輸給了女人,這是他的第一次inception。在迷失域自殺之后,他們回到了現實,可是那個inception的副作用產生了,那就是女人開始懷疑現實其實是夢境,認為只有死亡才能脫離。于是女人自殺而造成是道姆先生殺人的假象,終極目的是想讓道姆先生也被處死這樣可以一起脫離夢境。可憐道姆先生只能拋棄了孩子們而逃亡國外。而道姆的潛意識里面充滿了他老婆的影子(就是shade那個角色),只要他再從事設計夢境的工作,那個他妻子模樣的影子(代表了他潛意識里的悔恨和對殺死妻子夢境工作的怨恨)就會出來壞事。(這里說明一下:道姆和妻子經歷了第四層夢境和limbo兩個世界,最明顯的證據是在limbo臥軌自殺回到現實時兩人都是年輕的,而在第四層夢境兩人有老年的樣子。)
話說道姆先生在國外隨便接盜夢的工作,接到了一個竊取日本大亨情報的工作。這就是開頭的槍戰戲,也是簡單的夢中夢,所以這里只有一般性藥物,夢里死了立刻就醒。結果團隊的設計師先出錯在夢境中穿幫,然后又在現實中出賣了他們。日本人卻看重道姆的能力,反要雇傭他進行inception:讓競爭對手公司年輕的掌門人切分自己父親留下的基業,許諾他可以讓道姆回國看孩子。所以道姆先生找了新的設計師小女孩和新的團隊。對于inception的計劃是在年輕掌門人心中播撒對于父親的好的印象。道姆先生在討論中提到說反面的東西會產生正面的影響,如果年輕掌門人恨父親的話,反而會把企業做好來證明自己比父親強。
這次Inception的地點選在悉尼飛往美國的十小時航班上。這對道姆先生來說不成功便成仁,因為他在美國因為謀殺妻子被通緝,而日本人許諾說只要他完成任務就會在飛機上打電話解決這個問題。
一進入年輕掌門人的第一層夢境就出了問題。這個人被其他盜夢專家訓練過,夢境雖然是小女孩創造的,但是目標人物的意識會化身武裝人員對異常夢境里的人物進攻。更重要的是這次inception要在第三層夢境實行,而道姆之前并沒有把加強型藥物的副作用給大家說。這時候只有華山一條路完成任務了。印度人留在第一層負責kick,他們進入了第二層的酒店,小帥哥留在第二層負責kick,其余又進入了第三層夢境的雪堡,目的是讓年輕掌門人自己見到他們設計出來的父親而接受想法。就在即將成功的時候,道姆的妻子的影子再次出現攪局,開槍擊中了年輕掌門人,這時候年輕掌門人沒死,只是昏迷,情急之下,小女孩提出把年輕掌門人嫁接入道姆先生的第四層夢境,在那里用‘kick’,加上第三層的電擊把年輕掌門人喚醒。于是,小女孩和道姆先生進入道姆的第四層夢境,在那里小女孩把年輕掌門人kick回了第三層夢境(同時第三層有人對他的身體電擊)。在雪堡深處,年輕掌門人聽到了設計中的父親的最后遺言:I am disappointed that you tried…(意思是我對你極力想試著成為我這樣的人很失望),也就是說讓他作他自己別管公司。打開保險箱之后他看到的是自己最珍愛的和父親照片中的紙風車,對父親愧疚之下自然會實現同樣在保險箱中的偽遺囑分拆公司。到這里inception的任務圓滿完成。第三層夢境世界的爆炸kick,第二層的電梯kick,第一層的落水kick同時進行。小女孩,小帥哥,印度人等人成功脫險到第一層。只有日本人死在了第三層夢境世界,所以跳過第四層直接進了迷失域limbo。
與此同時,道姆先生在第四層夢境世界終于狠下心來殺死了妻子的影子,也在爭斗中被影子刺中身亡,同樣來到了迷失域。在這里他見到了日本人,并且說服他用槍殺死道姆先生然后自殺而雙雙回到現實。
(從夢境世界到limbo記憶會不太好使,所以道姆先生說他忘了第一次進迷失域之前和妻子在第四層一起老去的事情,他第二次進迷失域見日本人的時候也想了半天才想起來來的目的——日本人回不了現實不能實現許諾的讓他回家的報酬了。)
至此,道姆先生的心結解開,他的對妻子死去的悔恨因為回憶起了和妻子在第四層夢境世界白頭到老的幸福而被沖淡。日本人在飛機上醒來后也兌現了諾言打了電話解除了他的通緝。
最終的結尾是開放性的,陀螺不知道停沒停,但也無傷大雅。假如這作為參照的現實的確是夢境的話,那也只不過把六層世界變成七層。如同電影中出現多次的循環封閉上下樓梯一樣,電影中的多層世界也不過就是增加了維度的莫比烏斯圈,1到2到3到0到1到2到3到0……..如此往復。
其實,電影《盜夢空間》這部電影其藝術價值是有限的,這可能也就是它為什么最終在奧斯卡獎的掙奪中敗給《國王的演講》和《社交網絡》的原因吧。但是,這部電影對于夢境的解析、空間的轉換和邏輯的分解都有著獨到的見解,就像電影《黑客帝國》中所表達的效果一樣,如是沉迷在這部電影中,我們就無法確認這個現實的世界是否是真實的,亦或也只不過又是一個夢境罷了。