zoukankan      html  css  js  c++  java
  • (DannyB)关于Type Detection和Filters机制

    OOo有无数的导入(和导出)filters。我觉得即使“native”OOo文档也是由一个导入filter来处理。换句话说,实际上不存在"native"格式。只是一个通用的机制,和一个默认的当保存时使用的导出filter。(但我没有足够深入看,不能断然肯定这个,我也可能是错的)

     On loadComponentFromURL() 你可以指定一个导入filter。如果你没有指定,那么Type Detection将查看incomming文档并试图辨识使用哪个导入filter。因此当你打开一个SXW,这个Type Detection就检测出它是"native"格式,然后触发正确的导入filter。

    Type Detection的机制是通过配置管理器 明确地配置了。因此当一个开发者添加一个新的导入filter,它们也可以增加一个 type detection服务,并把它配置到 type detection 配置数据中。

    当没有给loadComponentFromURL()一个指定的导入filter去使用,它就触发不同的Type Detection服务从而每个服务可以检查incomming流。当一个特定的type detection服务说“hey,我认识数据的类型”,那么type detection服务就触发一个特定的导入filter服务(并传给它参数,根据在配置管理器里看到的)。因此相同的导入filter实际上可以导入多个相关的类型,但由Type Detection决定带的参数。(批注:此段意见不同意)

    loadComponentFromURL更多。。。
    URL可来自于不同地方。一个"file:///"rul,一个"http:///"url,Ftp,WebDav,等等。
    甚至一个"private:stream"url也可以使用,如果你提供一个属性指定input流。因此你甚至可以从一个任意的输入流加载文档,例如一个database blob。

    那么"private:factory/sdraw"url呢?我觉得即使这个url造成一个被加载的文档不被创建(申明我没有深入看)当你使用"private:factory/sdraw",你呢只是在加载一个来自某个地方的模板文档,而且type detection认识它,并触发正确的导入filter。

    事实上你可以用你自己选择的新文档默认模板来配置OOo。我觉得all this does就是改变 被加载的默认文档的位置当你 使用且"private:factory/sdraw"。

    这就解释了为什么没有一个独立API routine去创建新文档。我觉得OOo没有创建新文档的能力!它只是有从一个url加载它们的能力,例如"private:factory/sdraw",而这仅仅是 一个模板文档的url的 一个捷径。

    你钻入OOo越深你知道的越多。你坚持不懈的 揭开它是如何实现的面纱。

    如果有人有具体的事实能够证实或者反驳上面几个“我觉得”的陈述,我很高兴听到它们。

  • 相关阅读:
    JVM理论:(一/2)OutOfMemoryError异常
    JVM理论:(一/1)对象的创建过程
    JVM理论:(一)JVM内存模型
    MySQL优化(6):Mysql锁机制
    MySQL优化(5):索引失效分析、in与exists使用场合
    MySQL优化(4):explain分析
    MySQL优化(3):慢SQL分析
    MySQL优化(2):索引简述
    MySQL优化(1):Mysql简述
    MySQL基础(4):事务控制
  • 原文地址:https://www.cnblogs.com/zhyryxz/p/1631581.html
Copyright © 2011-2022 走看看