XML建模最详细介绍讲解

简介: XML建模最详细介绍讲解

1.XML介绍

1.什么是XML

XML(eXtensible Markup Language,可扩展标记语言)是一种用于创建自定义标记的文本格式,它可以用于描述和存储各种数据和文档类型。它的主要标志是语法简洁,同时具备可扩展性,可读性好,易于处理和转换等特点。

XML的设计目标是为了能够在不同计算机系统之间进行数据交换,特别是互联网上的数据交换。XML的基本语法规则非常简单,通常由以下结构组成:

  • 元素(Element):用于描述数据项或数据集合。
  • 属性(Attribute):用于为元素提供附加的信息。
  • 文本(Text):用于存储元素包含的数据内容。
  • 注释(Comment):用于添加对文档内容的注释和解释。
  • 指令(Instruction):用于提供有关文档的处理指令。

XML还支持创建和使用自定义标记和命名空间,可以根据需要定义新的标记和扩展现有的标记集合。这使得XML非常灵活和可扩展,也易于处理和转换成其它格式,如HTML、JSON等。

2.为什么要学习XML

学习XML技术可以使你掌握一种通用的数据交换和存储格式,扩展你的技术栈,并为你适应新的行业标准和业务需求打下坚实的基础。

2.XML建模介绍

XML(可扩展标记语言)建模是一种基于文本的建模技术,用于描述数据的结构和信息之间的关系。XML建模可以被应用于许多领域,例如Web服务、数据交换、配置文件等。

在XML建模中,数据和元数据被描述为标签、属性和值对的组合。这些标签可以嵌套在其他标签内部,形成树状结构。标签按照一定的规则呈现数据之间的层次关系,并定义数据的类型及其约束规则。标签可以被命名,从而创建具有唯一标识符的数据对象。属性则可以为标签提供额外的信息。

3.XML建模的优点

  • 简单且易于实现,不需要任何特殊的应用程序或工具来使用和编辑XML文件。
  • 具有良好的可扩展性,可以方便地添加新的元素或属性。
  • 具有强大的描述能力,可以准确地表示数据之间的关系和层次结构。
  • 支持多平台和多语言,可以轻松地在所有主流系统和编程语言中使用。
  • 可以轻松地与其他Web技术(如CSS和JavaScript)相结合,以创建动态的Web应用程序。

4.XML建模的实例

  1. 这是一个config.xml
package com.yuan.xml;
public class ForwordModel {
  private String name;
  private String path;
  private boolean readirect;
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public String getPath() {
    return path;
  }
  public void setPath(String path) {
    this.path = path;
  }
  public boolean isReadirect() {
    return readirect;
  }
  public void setReadirect(boolean readirect) {
    this.readirect = readirect;
  }
  @Override
  public String toString() {
    return "ForwordModel [name=" + name + ", path=" + path + ", readirect=" + readirect + "]";
  }
}
• 1
• 2
• 3
• 4
• 5
• 6
• 7
• 8
• 9
• 10
• 11
• 12
• 13
• 14
• 15
• 16
• 17
• 18
• 19
• 20
• 21
• 22
• 23
• 24
• 25
• 26
• 27
• 28
• 29
• 30
• 31
package com.yuan.xml;
import java.util.HashMap;
import java.util.Map;
public class ActionModel {
  private String path;
  private String type;
  private Map<String, ForwordModel> map = new HashMap<String, ForwordModel>();
  public String getPath() {
    return path;
  }
  public void setPath(String path) {
    this.path = path;
  }
  public String getType() {
    return type;
  }
  public void setType(String type) {
    this.type = type;
  }
  public void add(ForwordModel forwordModel) {
    map.put(forwordModel.getName(), forwordModel);
  }
  public ForwordModel pop(String name) {
    return map.get(name);
  }
  @Override
  public String toString() {
    return "ActionModel [path=" + path + ", type=" + type + "]";
  }
}
• 1
• 2
• 3
• 4
• 5
• 6
• 7
• 8
• 9
• 10
• 11
• 12
• 13
• 14
• 15
• 16
• 17
• 18
• 19
• 20
• 21
• 22
• 23
• 24
• 25
• 26
• 27
• 28
• 29
• 30
• 31
• 32
• 33
• 34
• 35
• 36
• 37
• 38
• 39
• 40
• 41
• 42
• 43
• 44
package com.yuan.xml;
import java.util.HashMap;
import java.util.Map;
public class ConfigModel {
  private Map<String, ActionModel> map = new HashMap<String, ActionModel>();
  public void add(ActionModel actionModel) {
    map.put(actionModel.getPath(), actionModel);
  }
  public ActionModel pop (String path){
    return map.get(path);
  }
}
• 1
• 2
• 3
• 4
• 5
• 6
• 7
• 8
• 9
• 10
• 11
• 12
• 13
• 14
• 15
• 16
• 17
• 18

4.工厂模式

package com.yuan.xml;
import java.io.InputStream;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
 * 工厂模式
 * @author yuanh
 *
 */
public class ConfigModelFactory {
  public static ConfigModel build(String name) throws Exception {
    InputStream inputStream = ConfigModelFactory.class.getResourceAsStream(name);//解析传参的文件
    SAXReader sr = new SAXReader();
    Document read = sr.read(inputStream);
    ConfigModel c = new ConfigModel();
    List<Element> list = read.selectNodes("/config/action");//拿到所有action
    for (Element element : list) {
      ActionModel a = new ActionModel();//action对象
      a.setPath(element.attributeValue("path"));//赋值path
      a.setType(element.attributeValue("type"));//赋值type
      c.add(a);//添加action对象
      List<Element> list2 = element.selectNodes("forward");//拿到action中的forwarod
      for (Element element2 : list2) {
        ForwordModel f = new ForwordModel();
        f.setName(element2.attributeValue("name"));//赋值name
        f.setPath(element2.attributeValue("path"));//赋值path
        f.setReadirect(!"false".equals(element2.attributeValue("readirect")));//赋值readirect
        a.add(f);//添加forward对象
      }
    }
    return c;//返回config对象
  }
  public static ConfigModel build() throws Exception {
    return build("/config.xml");
  }
  public static void main(String[] args) throws Exception {
    ConfigModel build = build();
    ActionModel a = build.pop("/loginAction");
    ForwordModel f = a.pop("b");
    System.out.println(f);
  }
}
• 1
• 2
• 3
• 4
• 5
• 6
• 7
• 8
• 9
• 10
• 11
• 12
• 13
• 14
• 15
• 16
• 17
• 18
• 19
• 20
• 21
• 22
• 23
• 24
• 25
• 26
• 27
• 28
• 29
• 30
• 31
• 32
• 33
• 34
• 35
• 36
• 37
• 38
• 39
• 40
• 41
• 42
• 43
• 44
• 45
• 46
• 47
• 48
• 49

3.XML的作用

1.数据交换

XML是一种通用的数据交换格式,被广泛应用于数据传输和存储。很多应用程序和系统都可以使用XML来交换数据,包括Web服务、数据库、应用程序之间的数据传输等。

2.数据存储

XML文件可以用来存储各种类型的数据和文档,包括配置文件、日志文件、报告等。在Web开发中,很多Web应用程序都使用XML来保存数据,如RSS、Atom等Web信息源格式。

3.数据处理

XML具有灵活的结构和可扩展的特性,可以用来表示复杂的数据结构和关系。使用XML可以轻松处理和查询大量的数据,并且可以方便地转换成其它格式,如HTML、JSON等。

4.Web开发

XML是Web开发中的一个重要技术,它可以用来描述页面结构、样式信息和数据内容。例如,使用XML可以创建可扩展的标记语言,如XHTML,同时可以使用XML与CSS和JavaScript等技术结合,创建交互性和动态性的Web应用程序。

5.行业标准

许多行业都采用XML作为其数据交换和存储的标准格式,如OA、电子商务、金融等领域。因此,了解XML技术可以使你更好地理解和应用行业标准和业务需求。


相关文章
|
5月前
|
XML 存储 设计模式
xml建模
xml建模
31 0
|
5月前
|
XML 存储 数据库
xml建模----详细完整,易懂结合代码分析
xml建模----详细完整,易懂结合代码分析
|
5月前
|
XML 数据格式
XML-----建模
XML-----建模
23 0
|
5月前
|
XML 存储 设计模式
XML建模
XML建模
28 0
|
6月前
|
XML 存储 Java
XML之建模
XML之建模
39 0
|
6月前
|
XML 设计模式 数据格式
XML建模
XML建模
23 0
|
6月前
|
XML 存储 Java
XML建模
XML建模
|
6月前
|
XML 设计模式 开发框架
J2EE(xml建模)
J2EE(xml建模)
40 0
|
6月前
|
XML 存储 开发框架
J2EE之XML建模
J2EE之XML建模
27 0
|
7月前
|
XML 设计模式 数据格式
XML基础入门:关于XML建模
XML基础入门:关于XML建模
23 0