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
  2. 在这里插入图片描述
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 + "]";
	}
}

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 + "]";
	}

}

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);
	}
	
}

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);
	}
}

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技术可以使你更好地理解和应用行业标准和业务需求。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值