zoukankan      html  css  js  c++  java
  • 使用XML定制Ribbon的一点小前奏(稍微再进一步的理解XML)

    定制文档级Ribbon界面的实现思路:

    1、excel的文件使用rar+xml的形式保存在本地。

    2、用压缩软件打开文件,以规范的格式直接编缉或添加xml文件

    3、使用excel文件时,主程序会解析xml文件,根据内容加载数据,包括Ribbon功能区的元素

    一、XML是啥

      1、XML就是一个小型数据库,可以用文本文件持久化保存数据。

      2、XML用文本格式保存数据,使它可以兼容不同平台。

      3、有意义的标签使它既保留了扩展性,同时也更易读。

      4、XML本身是一个对象,其中的每一个元素也都是对象(DOM),可以映射到表格数据

      5、XML还有表达对象之间的关系的能力(别忘了它就是数据库,可以说它也是一个关系型数据库)

      6、数据验证技术(schema)保证数据的完整性

    和XML有关的技术太多了,一辈子可能也学不完。

    二、面向对象的XML

        下面的简单示范可以看出普通表格、XML、和使用代码写的“类”有互相转化的能力。

    1、excel和xml分别如何表示人类

    Name Gender Age Hobby
    刘备 32 哭鼻子
    关羽 30 耍大刀
    张飞 28 卖猪肉
    <Persons>
        <Person name="刘备" gender="男"  age="32" hobby="哭鼻子"/>
        <Person name="关羽" gender="男"  age="30" hobby="耍大刀"/>
        <Person name="张飞" gender="男"  age="28" hobby="卖猪肉"/>
    </Persons>

      a、每一个Person元素和excel表中的数据行对应。

      b、每一个Person元素都有和excel列名对应的属性。

    2、使用vba代码表示人类

        类模块:Person(实体类)。

    Public name As String
    Public age As Integer
    Public gender As String
    Public hobby As String

       标准模块:VBPerson。NEW一个人类的具体对象(类的实例),这个对象和excel的行“对应”

       (数据库表中的列可以称为“域--Filed”,表中的每一行可以称为“实体--Entity”)

    Dim p1 As New Person
        p1.name = "刘备"
        p1.age = 32
        p1.gender = ""
        p1.hobby = "哭鼻子"

      a、excel表格的列名和类中的“变量--字段”(这里没有使用属性,但使用属性更合适)有映射关系,同样的和XML也有对应关系。

          b、每New一个Person都对应着excel中的一行,也对应着XML中的一个元素。

      注:实体类(modal)没有行为,只用来保存数据。表格中的数据也没有行为,XML定制Ribbon虽然有类似OnAction这样的东东,个人感觉也应该理解为属性,不过这个属性的值对应了回调的方法名。

    二、XML中的对象和Ribbon元素之间的关系

    Ribbon做为对象的容器,他能容纳的对象种类很多。tab(标签)、group(分组)、menu(菜单按钮)、button(按钮)等。

    1、这些对象都可以用XML元素来映射,比如button在XML中可以这样表示

    <button id="btn" label="我的按钮">

    2、也可以表达对象之间的关系,比如一个group(分组)下有一个menu按钮,menu按钮中有两个button

    <group id="CustomGroup" label="自定义分组">
       <menu id="CustomMenu">
          <button id="btn1" label="按钮一"/>
          <button id="btn2" label="按钮二"/>
       </menu>
    </group>

    补充:Composite设计模式

          Ribbon中的元素的关系比较符合Composite设计模式。用树状结构表达“容器+子容器+...+对象”这样的复杂结构。

  • 相关阅读:
    使用Jenkins进行android项目的自动构建(3)
    使用Jenkins进行android项目的自动构建(2)
    使用Jenkins进行android项目的自动构建(1)
    testlink 从1.8.5 升级到 1.9.8
    779. 第K个语法符号(Leetcode)
    687. 最长同值路径(Leetcode)(递归+树)
    116. 飞行员兄弟(Acwing)(递归+位运算)
    95. 费解的开关(Acwing)(分析+递推)
    Java遇到输入速度瓶颈时的解决办法
    92. 递归实现指数型枚举(Acwing)(递归)
  • 原文地址:https://www.cnblogs.com/zzstone/p/5566544.html
Copyright © 2011-2022 走看看