1.XML建模是什么
将XML配置文件中的元素、属性、文本信息转换成对象的过程叫做XML建模
2.XML建模有什么作用?
XML是被设计用来存储数据、携带数据和交换数据的。XML不是为了显示数据而设计的,主要是用于交换数据,可以从HTML中分离数据,也可以用于存储数据,大量的数据可以存储到XML文件中或者数据库中,应用程序可以读写和存储数据,一般的程序可以显示数据。
3.XML建模的案例
以config.xml为例
以面向对象的思维来建模,来解析上方代码(先看标签,然后再看属性)步骤
1. 在configModel中添加actionModel,就要有个容器来装载actionModel,又因为axtionModel是唯一值,所有这个容器就为 (Map集合);
2. actionModel中添加forwordModel,用Map容器来装载;
3. 在actionModel中还有属性 path,type;
4. 在forwordModel中有属性 name,path,redirect ;
接下来,根据这个步骤来建包,建立ActionModel,ConfigModel,ForwordModel三个包
1.ActionModel包
package com.sy; import java.util.HashMap; import java.util.Map; public class ActionModel { private String path; private String type; private Map<String, ForwordModel> fmap=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; } //将Forword往action里面放 压栈 public void push(ForwordModel forwordmodel) { fmap.put(forwordmodel.getName(), forwordmodel); } //将Forword从action里通过name值取出来 public ForwordModel pop(String name) { return fmap.get(name); } }
2.ConfigModel包
package com.sy; import java.util.HashMap; import java.util.Map; public class ConfigModel { private Map<String , ActionModel> amap=new HashMap<String, ActionModel>(); //将Action往Config里面放 压栈 public void push(ActionModel actionmodel) { amap.put(actionmodel.getPath(), actionmodel); } //将Action从Config里通过path值取出来 public ActionModel pop(String path) { return amap.get(path); }
3.ForwordModel包
package com.sy; public class ForwordModel { private String name; private String path; private boolean redirect; public ForwordModel() { // TODO Auto-generated constructor stub } 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 getRedirect() { return redirect; } public void setRedirect(boolean redirect) { this.redirect = redirect; } public ForwordModel(String name, String path, boolean redirect) { super(); this.name = name; this.path = path; this.redirect = redirect; } @Override public String toString() { return "ForwordModel [name=" + name + ", path=" + path + ", redirect=" + redirect + "]"; } }
建立完包后,这里我使用的是工厂模式,来建立一个包来获取数据 就是解析
里面的参数,就是将它变为动态,想要获取哪个文件的数据,就写入哪个文件,改括号的东西就可以了,这里是获取了actionModel的数据,要保证ForwordModel里面有东西。
然后数据的获取到之后加入进去就可以了,然后一般都会再写一个无参的方法调用
然后再ConfigModel里面拿取,就可以了。