`
canonical
  • 浏览: 366911 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于元数据(metadata)设计

阅读更多

    目前的框架设计中,引入元数据(metadata)已经是必然的事情,jdk5.0的annotation机制也为metadata的物理驻留位置提供了新的选择。常见的一些元数据设计方案中往往是元数据直接驱动系统的展现甚至运行过程(例如普元EOS),大有完全取代程序代码的趋势,这无疑是对元数据概念的一种滥用。一般在界面层所使用的元数据其实类似于某种新的界面描述语言,即某种特定目的的DSL(domain specific language). 但这种描述一般是不完备的, 一旦遇到扩展情况, 往往需要很多额外的工作。
    实际上并不是所有信息都要在独立的xml 中描述, 前台模板页面本身就可以是一种元数据, 前台元素之间的关联已经隐含表达了多种关系, 不需要把这些关联再在额外的xml文件中重复.  比如说一个数据集展现在页面上的时候需要支持几种操作,即对应的需要显示几个按钮. 在witrix平台的tpl模板中, 我们的调用方式大概如下
        <ui:EditTable pager="${pager}" dsMeta="${dsMeta}">
        <buttons>
          <ui:RemoveRowButton/>
          <ui:EditRowButton/>
        </buttons>
        </ui:EdiTable>
    操作集合这一信息仅在模板中表达一次.  实际上很多时候, 不同的界面我们需要展示不同的操作集合, 它本身并不一定是数据集内在的性质. 数据集的属性只能是支持全部操作的集合, 它并不需要直接对应到界面上. 对于多个界面我们需要尽量共用一个meta配置.

    在witrix平台的元数据方案中,关键是采用pull mode, 由前台模板系统驱动, 模板决定使用何种资源(包括元数据),而不是由元数据驱动整个系统的展现。当一个元数据条目不适用的时候我们可以忽略它,但是仍然可以使用元数据配置中的其他部分。这与我们的jsplet web框架的设计是一脉相承的。

    元数据的驻留形式本身也是很有意思的问题。假设现在我们需要描述如下信息:本字段采用input框显示,它有一个参数value. 它的meta形式可以如下,
       <inputor type="TextInput">
          <arg name="value" />
       </inputor>
    我们也可以选择如下形式
       <inputor>
        <input type="text" value="${value}" />
       </inputor>
    第二种方式的特殊之处是它选择了与html规范本身兼容的表达形式,即寄生于html格式之中。这种设计的好处在于我们只需要一个通用的模板引擎,而不需要任何特定于该控件的解析器,就可以产生最终所需的文本输出。这种元数据表达方式更重要的地方在于它是导向更高复杂性层次的自然途径。例如我们现在需要一种更加复杂的自定义控件来显示该字段,则
       <inputor>
        <ui:DateInputor value="${value}" />
       </inputor>

    在元数据的设计中,适可而止永远都是我们需要铭记在心的核心原则。对元数据描述的范围要适可而止,不要试图包罗万象。例如,在界面元数据的设计中不要对于数据供体有任何假定。一个前台表格,无论它的数据是数据库中的一组记录, 还是通过pop3协议收取的一组信件,应该都不影响它对于meta的使用。元数据引擎所能够直接理解的粒度也要适可而止。在witirx平台的元数据方案中,viewer和inputor等配置段其实是由tpl模板引擎负责解析的,在DataSourceMeta的解析器并不能识别其中的细节,它也不需要识别其中的细节。

分享到:
评论

相关推荐

    元数据参考资料(metadata)

    元数据,作为“关于数据的数据”,在信息技术领域扮演着至关重要的角色。本文将深入探讨元数据的概念、格式、工具以及其在数字化图书馆中的应用体系,旨在全面解析这一关键概念。 ### 元数据的本质与定义 元数据的...

    metadata公共元数据项目源码

    元数据,简单来说,是对数据的数据,它包含了关于数据的描述、属性、来源、格式等信息,对于数据治理、数据分析和数据挖掘等环节具有重要意义。 源码分析: 1. **项目结构**:在解压后的“metadata-master”文件夹...

    关于元数据的十万个为什么

    元数据,英文名为Metadata,源自希腊语“meta”,意为“之后”或“超越”。它被定义为“关于数据的数据”,是描述数据内容、覆盖范围、质量、管理方式、数据所有者以及数据提供方式等信息的一系列结构化数据。元数据...

    元数据标准 元数据标准

    元数据是描述数据的数据,它提供了关于数据集、文件或任何其他信息单元的详细信息,如创建日期、作者、大小、内容摘要等。在信息化领域,元数据标准扮演着至关重要的角色,因为它们确保了不同系统和平台之间的数据...

    DatabaseMetaData生成数据库DLL

    `DatabaseMetaData` 是Java数据库连接(JDBC)API的一部分,它提供了关于数据库模式、特性以及元数据的详细信息。本篇文章将深入探讨如何利用`DatabaseMetaData`生成数据库的DLL(在关系型数据库中,DLL通常指的是...

    MetaData非托管API

    该API专为编译器和加载器等底层工具设计,旨在实现对元数据的快速访问,同时减少在遍历类层次结构或操作集合(如类成员)时所需的辅助功能。与之相对,对于浏览器或其他寻求更高层级接口的工具而言,则建议使用.NET...

    biosample_metadata 从NCBI中的生物样品中提取元数据.zip

    在IT领域,尤其是在生物信息学中,"biosample_metadata 从NCBI中的生物样品中提取元数据"是一个关键任务,涉及到对生物实验数据的管理和分析。NCBI(National Center for Biotechnology Information)是美国国家医学...

    前端项目-reflect-metadata.zip

    元数据是在程序中附加的数据,它提供了关于代码的额外信息,而不直接影响代码的行为。例如,一个类可能有元数据来标记它为服务注册的一部分,或者一个方法可能有元数据来指示它是一个路由处理函数。 使用Reflect ...

    kotlin-metadata,.zip

    元数据在编译过程中记录了关于源代码的各种信息,比如类型信息、注解、函数签名等,这对于反射和编译时代码生成等高级功能至关重要。 此库作为一个开源项目,意味着它的源代码对公众开放,允许开发者查看、修改和...

    metadata-extractor-2.x资源jar包

    metadata-extractor-2.x是一个强大的开源库,专为了解析这些元数据而设计。本文将详细介绍metadata-extractor库及其核心组件XMPcore,以及如何在实际项目中应用它们。 metadata-extractor是由David Cochrane开发的...

    metadata-extractor.jar

    在数字时代,图像文件不仅包含了我们看到的像素信息,还包含了丰富的元数据(Metadata),这些数据提供了关于图片拍摄时间、地点、设备参数等关键信息。元数据提取库如`metadata-extractor.jar`,在开发中扮演着至关...

    水利地理空间数据元数据标准

    - **元数据**:关于数据的内容、质量、状况和其他特性的描述性数据。 - **元数据元素**:描述地理数据的离散性最小最基本的信息单元。 这些术语为后续元数据的描述提供了基础。 ##### 3. 元数据内容 - **元数据...

    Metadata2Shp.rar 根据卫星元数据(xml格式的)生成shp

    总之,Metadata2Shp.rar 提供了一个便捷的方法,将卫星图像的XML元数据转换成GIS社区普遍接受的Shapefile格式,使得遥感数据能够更好地集成到地理空间分析和制图工作中。通过利用XMLreader的灵活性,这个工具可以...

    metadata-extractor-2.3.1.jar

    《metadata-extractor-2.3.1.jar:深入解析开源图片元数据提取库》 在数字图像处理领域,元数据(Metadata)扮演着至关重要的角色。它包含了图像的各种信息,如拍摄时间、相机型号、地理位置、曝光参数等,对于理解...

    jquery.metadata.1.0_javascript_jquery_

    3. `META.json`:可能包含了关于jQuery Metadata插件的元数据,如版本信息、作者、许可证等。 4. `README`:通常包含有关项目的基本信息、安装指南、使用方法等,是理解项目的关键文件。 5. `test`:测试文件夹,...

    基于Java JDBC的数据库元数据查询设计源码

    本项目是一款基于Java JDBC技术的数据库元数据查询设计源码,包含59个文件,包括35个Java源代码文件、15个PNG图片文件、3个XML配置文件、3个Freemarker模板文件、1个Git忽略文件、1个授权协议文件和1个Markdown文件...

    SalesForce - Metadata API Developer Guide.pdf

    这个API的设计目的是用于管理自定义化设置,并构建能够管理元数据模型的工具,而不是直接操作数据本身。如果需要创建、检索、更新或删除记录,例如账户或潜在客户,应使用数据SOAP API或REST API。 **元数据API支持...

    informatica 元数据管理手册.rar

    《Informatica元数据管理手册》是关于数据管理和集成领域的一款强大工具——Informatica的详细指南。 Informatica作为一个领先的元数据管理解决方案,它帮助企业捕获、理解、治理和利用元数据,以实现数据驱动的决策...

    MK.Data.Model.Patterns.A.Metadata.Map

    标题与描述均提到了"MK.Data.Model.Patterns.A.Metadata.Map",这暗示了我们正在讨论的是数据模型设计中的一个特定模式——元数据映射(Metadata Map)。在IT领域,尤其是在数据库设计与管理方面,数据模型模式是...

Global site tag (gtag.js) - Google Analytics