第一篇:分布式文件系统命名空间解析
分布式文件系统命名空间解析
近年,微软对其分布式文件系统(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.xiexiebang.com http://www.xiexiebang.com 命名空间前缀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.xiexiebang.com
localname: book
qname: jd:book uri: http://www.xiexiebang.com
localname: title qname: jd:title uri: http://www.xiexiebang.com
localname: author
qname: jd:author uri: http://www.xiexiebang.com localname: book
qname: book uri: http://www.xiexiebang.com localname: title
qname: title uri: http://www.xiexiebang.com 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……..如此往复。
其实,电影《盗梦空间》这部电影其艺术价值是有限的,这可能也就是它为什么最终在奥斯卡奖的挣夺中败给《国王的演讲》和《社交网络》的原因吧。但是,这部电影对于梦境的解析、空间的转换和逻辑的分解都有着独到的见解,就像电影《黑客帝国》中所表达的效果一样,如是沉迷在这部电影中,我们就无法确认这个现实的世界是否是真实的,亦或也只不过又是一个梦境罢了。