模式和xml学习(2)
一:设计模式部分
状态模式(state)
状态模式类似于一种简单的工作流,用来把大量的判断分支进行拆分,给每一种判断增加一个状态,如果不满足该判断可以进行状态转换,知道遇到满足条件为止
这样做的好处就是,当需要增加判断的时候,不需要改变已经存在的代码。只需要增加判断的类,原始判断类中增加新的状态转换。
适配器模式(adapter)
适配器模式用来对原始接口进行改造,用来适应新的接口,但是要求2者大部分功能应该相同。多用于项目维护期。新开发的项目应当多重构,少使用适配器模式
备忘录模式(memento)
该模式用来进行对象的保存和恢复。通常情况下,如果不用该模式,在调用类中,对象的细节就会被暴露。对象的属性保存多少也是固定的,不能灵活使用。
备忘录模式就提供了一个类(class1)用来保存需要保存的对象,可以设置需要保存对象的属性个数。再提供一个管理类(class2)用来管理(class1),
这样调用类只要操作管理类(class2)就可以保存对象和恢复对象,而不需要指定具体的细节。
二:xml部分
DTD约束只要包括
1:元素声明 <!ELEMENT website (name)>
<!ELEMENT name #PCDATA>
2:属性声明<!ELEMENT website (name)>
<!ELEMENT name #PCDATA>
<!ATILIST name fistname #PCDATA #FIXED "will">
3:实体声明:可以内部声明,也可以外部声明,外部声明时 <?xml version='1.0'>是做为文本声明,而不是xml声明,所有version值可以没有。
<!ENTITY >(一般实体)
<!ENTITY % >(参数实体) 在内部DTD中,参数实体的引用不可以用在实体声明中,可以用在允许使用的地方。而外部DTD中则没有这个限制。
4:标记声明 用来说明一些未解析的实体的外部处理命令
<!NOTATION >
格式良好的xml(well-formed) 只要符合xml定义的书写格式,就可以成为格式良好的xml
有效的xml 有完整的DTD定义
相关文档:
最常见的XML数据类型有:Element, Attribute,Comment, Text.
Element, 指形如<Name>Tom<Name>的节点。它可以包括:Element, Text, Comment, ProcessingInstruction, CDATA, and EntityReference.
Attribute, 指在<Employee id=”12345”>中的粗体部分。
......
Input.xml-----------
<?xml version="1.0" encoding="gb2312"?>
<studentList>
<student sex="man">
<name>wgy</name>
<age>23</age>
<tel>12345678</tel>
</student>
<student sex="female">
<name>lemon</name&g ......
/*
* history
*
* Created on 2003-5-26
*
* 2003-06-05
* 1.增加了Log的处理信息。
* 2.抛出的异常由原来UtilException的改变成XMLException,后者继承前者。
*
* 2003-09-02 by David Yu
* 1.增加了改变一个 ......
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Xml;
using System.Data;
public class Cls_XML
{
#region 创建xml文件
/// <summary>
/// 创建xml文件
/// ......
xml文件如下:<?xml version="1.0" encoding="gb2312"?>
<软件管理系统>
<管理员>
<用户名>明日科技</用户名>
<密码>123456</密码>
<地址>长春市</地址>
</管理员>
<管理员>
<用户名>明日软件</用户名 ......