文档本科毕业设计-用c实现xml编辑器

c xml  时间:2021-02-14  阅读:()

引言

微软公司近期推出了C#程序设计语言引起业界的普遍关注。为什么有了VB,VC++,业界乂公认了J a v a,还要推出一个新的语言 C#能代替VB, VC++,成为微软统一的语言吗我们将以多大的关注去学习C#?这对于业界第一线软件开发者的确是个问题。我们已被各种描述语言(J s c dp t , VBS c r i p t ) ,置标语言(XML, eXML, HTML,SGML) ,模型语言(UML) ,体系结构描述语言(ADL)弄得不堪重负偏偏最肓接表述软件的编程语言又出了一个C#,殊知编程语言是专业程序员“找饭碗”的工具。

众所周知经常换语言滋味是不好受。这是因为无论什么语言既是表达工具也是思维工具习惯了某种语言的表达也就习惯了这种语言的思维范型。一旦习惯改起来就不舒服。几年前从C到C++,不少人编程序依然是DFD图 结构图过程模块最后凑出对象以C++表示。肓到相当一段时间之后才理解到00的开发好处。一遇到问题首先想到的是什么是对象她和对象如何交互直接用C++表达对象。

一个编程语言不断带来新的思维范形式好学的但是学不到软件开发新技术。正如ALGOL, C程序员学习FORTRAN和P a s c a l—样。仅仅学会了一种新的表示法从C++到C#却不是这样C#带来新的编程范型即从面向对象编程到Web服务编程。这中间有这个业界巨大的转变从分布式客户/服务器计算转向 “软件就是服务”的网络计算。后者把资源共享软件重用又提成到一个新的阶段租赁下载在Internet±进行。在ASP(应用服务提供者)提供的各式各样服务基础上业务系统的应用开发者几乎不用编制维护(升级纠错)软件就可以快速交付十分复杂的系统。而ASP用C#开发的Web服务也使大量的使用其它ASP提供的服务(当然也包括以Java,甚至C++提供的服务构件) 。

微软公司提供的Microsof t . NET就是为了完善新一代网络计算环境而C#是其屮的核心工具之一简单说是表达W'cb服务软件最方便的工具。然而微软在开发推行C#时又是非常稳健的。原因是网络计算还在纵深发展目前成功的应用如电子商务企业门户信息检索不过是网络计算最早期的成果C#还在不断试探中完善。

本文用C#实现XML编辑器XML是1998年2月在WWW (W3C: Wor ld Wide WebConso r t i um的不懈推动之下持续向前发展。起初许多开发者还嘲笑XML,认为它

只不过是编脚本的新方法而已。但那些常用数据库进行管理和开发的人员很快就意识到XML的潜力之所在XML会成为不需要任何专门的方法就能为团体之间提供数据服务的一种新的途径。

开发员开始把XML的一些片断融入到他们的桌面应用程序中有的用来存储配置数据有的作为输出文件。随着时间的推移他们开始把XML放到Internet上使数据库Z间开始通过XML进行通信。许多企业发现得益于XML,他们对外部数据的数据操作变得更加轻松了。

不过开发人员并不是唯一发现XML潜力的群体还有微软和那些让XML成为.NETFr amework基础的人士。 . NET的目标是在桌面应用程序与在线应用程序之间建立联系使其对象之间的通信变得更为方便。

第一章XML简介

第一节XML产生的背景

可扩展标记语言Extensive Markup Language- -简称XML,它同HTML 即超文木标记语言- -Hyper Text MarkupLanguage一样都是来自StandardGeneral izedMarkupLangu age,即标准通用标记语言简称SGML。 SGML是一种用标记来描述文档资料的通用语言它包含了一系列的文档类型定义简称DTD ,DTD中定义了标记的含义因而SGML的语法是可以扩展的。 SGML十分大既不容易学用不容易使用在计算机上实现也十分困难。鉴于这些因素 Web的发明者一欧洲核子物理研究中心的研究人员根据当时 1989年计算机技术的能力提出了HTML。

HTML只使用SGML中很小一部分标记。为了便于在计算机上实现HTML规定的标记是固定的既HTML语法是不扩展的它不需要包含DTDo HTML这种固定的语法是它易学易用在计算机上开发的浏览器也十分容易。正是由于HTML的简单性使Web技术从计算机界走向全社会Web的发展如日中天。

近年来随着的W e b应用越来越广泛和深入人们觉得HTML不够用1 HTML过去简单得愈发严重阻碍了用它来表现复杂的形式。尽管HTML推出了一个又一个新版本已经有了脚本•表格等表达功能但始终满足不了不断增长的需求。另一方面这几年来计算机技术的发展也十分迅速已经可以实现比当初发明创造HTML时复杂得多的Web浏览器所以开发一种新的Web页面语言是十分必要的也是可能的。

有人建议直接使用SGML作为W e b语言这固然能解决HTML遇到的困难。但是SGML太大了用户学•用不方便不说要全面实现SGML的浏览器就十分困难于是自然会想到仅使用SGML的子集使新的语言既方便实用又实现容易。正是在这种形势下标准化组织W 3 C建议使用一种精简的S GML版木一XML应运而生了。它继承了S GML重要的三个特性可扩展性结构化有效性成为表示结构化信息的一种标准文本格式⑸。

第二节XML的基本内容

XML文档XML标识语言成的XML原代码文件实际上是ASC I I的纯文本文

件,可以用No t cp ad创建和修改。XML文档的后缀名为.XML,用IE5.0以上浏览器可以直接打开并显示成树状结构看到的就是XML文档•一般来说,XML文档包含三个部分:a—个XML文档声明:<?xml version二"1 . 0〃  〉b一个关于文档类型的定义:<!DOCTYPE da t a SYSTEM "da t a. dt d〃>如不需要可以省略c.用XML标识创建的内容.

举例:

<?xml version二〃 1 .0〃 >

<books>

<book>

<author>Carson 〈 /author><price format=//dol larzz>31 .

95</price><pubdate>05/01/200l</pubdate>

</book><pubinfo>

<publ i sher>MSPress</pub1 i sher><state>WA</state>

</pubinfo>

</books>

文档对彖模型DOM类是XML文档的内存屮表示形式下图显示将此XML数据读入DOM结构中吋内存的构造。

图1 . 1 XML文档的树形结构

下面是XML中的有关概念

( 1 )Element (元素)

元素是组成XML文档的最小单位由标识来定义包括其中的内容如<author>Carson</author>,而且要由自己创建。元素可以包含元素也可以包含通常只用于文档中的文本的那些词和句子。在XML中这些文本叫做文档的字符数据。

标记语言方面的专业人员把他称作为文档的树型结构。包含所有元素的元素叫根元素。根元素所直接包含的那些元素叫做子元素。它们也可以包含它们自己的子元素。如果元素包含子元素我们叫他熟知。如果元素只包含字符数据我们叫它树叶

(2)At tribute (属性)

元素还可以具有属性属性是一种将特征或特性赋给文档元素的一种方式。例如 <price format= /dol lar z>31 . 95</price>其中format就是属性的名称, dol lar是属性值。属性值用单引号或双引号包围。

(3)Declarat ion (声明)

所有XML文档的第一行都有一个L声明表示是一个XML文档并指出遵循哪个版本的规范:<?xml version二〃 1 . 0〃 ?>说明是1 . 0版本的XML文档。

(4)Ent i ty(实体)

文档被定义为一个字符序列。一个处理器自始至终处理这个序列。提供了一种机制可以使文本非线性的组织也就是以多片的形式组织语法分析器可以重新变成线性结构。

“文木片”这个概念叫做实体。一个实体可以小到一个字符大到可以大到一本书的所有自负。

每个实体都有名字。在文档中可以通过插入实体应用来引用实体。处理器将用实体替换相应的实体引用这叫做文本替换。元素是描述文档的逻辑结构而实体是描述组成文档的那些字节块的位置我们把它称作文档的物理结构。

5 DTD文件类型定义 。

DTD是由元素类型属性符号和实体等一系列定义组成的一个集合。他明确规定在文档中哪些是合法的以及在哪些地方是合法的。一个文档可以在他的文档类型中说明它符合哪种特定的DTD。 文档类型通常所成因为首字母缩将和文

档类型定义类型相同 。

DTD文档包含元素的定义规则元素间关系的定义规则元素可使用的属性可使用的实体或符号规则。DTD文件也是一个ASC I I的文本文件后缀名为.d t do

一些文档并没有相应的文档类型说明但这并不是说它们就不符合相应的文档类型而是说它们没有声明符合某种定义的文档类型定义

6 Shape completely but legal i ty 形式完备而合法

在XML中 “在正确的地方使用正确的单词”叫做合法。它同文档类型密切相关所谓一个文档和法是指在文档类型说明中他声称符合某种DTD,并且事实上也符合该DTD。那些没有文档类型说明的文档并不是真正的非法他们没有违反他们的DTD,但也不能因为没有办法确定它们违反DTD而说明他们是违法的。

在创建一个形式完备而不合法的文档之前应该仔细考虑清楚。如果该文扌当类型只有唯一的一个文档并且文档很小那麽文档形式完备也许就够了。但如果它是信息系统即是很小的一部分或是一个大文挡那就应该为他一个DTD,

第三节XML语法基础

基本构成单元叫实体(ent i ty) ,包含解析的或未解析的数据.解析的数据由字符构成可以看成是标记由XML处理函数处理而未解析的字符数据被当成原始文本不被处理例如<name>Delfan</name>, <name>和〈 /name〉就是标记而Del fan是原始文本标记用来描述文件的存储结构(实体)和逻辑结构(元素) 。XML语法实际描述了用來定义XML文件的结构和布局的构造也包含了约束关系而XML需要XML处理函数来处理所以必须遵守严格的语法。

一个简单的例子

<?xml version二〃 1 . 0" encodin萨〃GB2312"?>

〈我的电话本〉

〈记录〉

〈姓名>Delfan</姓名〉

〈电了邮件>programer@21 cn. com</电了邮件〉

</记录〉

〈记录〉

〈姓名〉某某〈 /姓名〉

〈电子邮件>e@b. c 〈 /电子邮件〉

〈 /记录〉

〈 /我的电话本〉

一个XML文件只能有一个根而且XML是基于UNCODE编码的标记都可以是汉字•还有 I E本身就是个XML的解析器虽然不很完善。可以将以上代码到一个文本文件中例如文件名为t e s t , xm l ,双击TE就可以把这个XML文档解析成-棵树并按层次显示出来。⑻

第四节XML编辑器

现今的XML编辑器有多种多样例如XML Explorer (XML Edi t ion) 2. 6. 7, XMLSpy 5.0, XML Blueprint 2.2 , Bonodi XML Edi tion 2.0, XML DB Query

简体中文版,Easy XML, XML Generate 1 .0等等。

Bonodi XML Edi tor 2.0

一个适用于Microsoft Windows 98/Me/NT4/2000/XP的多语言XML编辑器。你可以用不同的语言编辑XML文档比如说英语、日语、汉语、韩语、西班牙语、法语、德语、俄语、希腊语、泰语、希伯莱语、阿拉伯语以及其它任何Windows所支持的语言

Easy XML

XML编辑/检查工具-Ea s y XML,支持QXML查询语言的结点选择文件可以以树状结构显示XSLT功能可以将XML转译成HTML。

XML Spy 5. 0

XML编辑器提供三种XML文档视图结构显示和编辑原码视图和支持CSS, XSL的预览。

XML Generate 1 .0

XML的结构与树控件结构非常相似木软件能够通过树控件的操作来产牛XML文件产生的文件可以用来给其他程序使用。树控件操作可以添加删除修改,拖放XML的读取及存储。

XML Blueprint 2.2

是一款专为Windows开发者而设计的XML编辑器高效易用。其主要功能包括浅显的文木编辑功能能编辑任何DTD文件XML图层整理即时XML色彩;XML目录设定无限制的undo/redo功能。

XML Explorer (XML Edi tor) 2. 6. 7

XML Exp l o r e r是一个XML和s chema编辑器、XML数据分析工具。它简单好用可以展现多个窗口。你可从树形图、列表、表格、文字模式和跳出式编辑区等方式操作任何XML数据。它copy and paste的功能让使用者复制任何XML文字到系统剪贴簿上然后贴到任何XML Expl orer窗口它支持双向Xpath,所以只要点任何XML节点或属性一个标准的Xp a t h就出来了。它两栏的文字展现方式方便比较和编辑。它的schema完全支持树形图、列表、集合观看模式、文字模式。有了它你还能轻易把微软Ex cek Acc e s s和任何ODBC数据转成XML格式。新版木增加了XML数据的图表与统计分析功能。

本软件的目的是要做一个编辑XML文挡的编辑器。由于XML文挡是树形结构的

所以在本软件中XML文挡就用TreeView控件显式显示出来TreeView也是树形结构的但TreeView控件允许有多个根节点需要对TreeView作一些限制另外TreeView控件只是将XML文档的树形结构显示出来但XML文档中各个节点的属性值和文木值不能在TreeView中显示出来所以要给TreeView中的每个节点赋一个指针指针所指的地址中存储着XML文档中对应节点的文本值和属性值。

这是实现XML编辑器的难点通过addxmlnode和dddt rccnodc函数可以完成打开文件保存文件的功能。以下是XML编辑器的界面

图1 .2 XML编辑器

该软件通过编辑按钮或工具栏里的箭头可以添加删除插入编辑结点通过更改按钮可以输入选定结点的文本值展性值展性名称通过更改完成按钮可以保存更改通过文件按钮可以打开保存新建另存退出功能。还可以通过工具栏的最后一个按钮察看把XML文件代码。

第二章Microsoft .Net中的C#

第一节・NET帄台

1 ・NET的简介

要介绍C#。就要先介绍一下C#所运行的帄台.NET o

我们正处于一个崭新的计算吋代一个互联网I 寸代。Internet应用开发新技术层出不穷,其中微软的.NET是近来最热门的技术之一因此也受到越来越多软件开发者和用户的关注。但.NET到底是什么大家对.NET帄台的看法和观点也不尽相同。

乌云数据(10/月),香港cera 1核1G 10M带宽/美国cera 8核8G10M

乌云数据主营高性价比国内外云服务器,物理机,本着机器为主服务为辅的运营理念,将客户的体验放在第一位,提供性价比最高的云服务器,帮助各位站长上云,同时我们深知新人站长的不易,特此提供永久免费虚拟主机,已提供两年之久,帮助了上万名站长从零上云官网:https://wuvps.cn迎国庆豪礼一多款机型史上最低价,续费不加价 尽在wuvps.cn香港cera机房,香港沙田机房,超低延迟CN2线路地区CPU...

RepriseHosting:$27.97/月-L5640,16G内存,1TB硬盘,10TB月流量,西雅图机房

RepriseHosting是成立于2012年的国外主机商,提供独立服务器租用和VPS主机等产品,数据中心在美国西雅图和拉斯维加斯机房。商家提供的独立服务器以较低的价格为主,目前针对西雅图机房部分独立服务器提供的优惠仍然有效,除了价格折扣外,还免费升级内存和带宽,商家支持使用支付宝或者PayPal、信用卡等付款方式。配置一 $27.97/月CPU:Intel Xeon L5640内存:16GB(原...

美国G口/香港CTG/美国T级超防云/湖北高防云服务器物理机促销活动 六一云

六一云 成立于2018年,归属于西安六一网络科技有限公司,是一家国内正规持有IDC ISP CDN IRCS电信经营许可证书的老牌商家。大陆持证公司受大陆各部门监管不好用支持退款退现,再也不怕被割韭菜了!主要业务有:国内高防云,美国高防云,美国cera大带宽,香港CTG,香港沙田CN2,海外站群服务,物理机,宿母鸡等,另外也诚招代理欢迎咨询。官网www.61cloud.net最新直销劲爆...

c xml为你推荐
photoimpact教程怎样用photoimpact制作漫画网点?是PI不是PS!google竞价排名google关键字广告和百度排名有什么区别,又有什么相同点?在线漏洞检测如果检测网站是否有漏洞?公章制作word里如何制作公章?微信如何建群微信怎么建立群正则表达式javajava正则表达式不兼容软件和电脑不兼容会怎样?申请证书手机申请证书蘑菇街美丽说蘑菇街美丽说唯品会天猫京东。女生买衣服,哪个好奇虎论坛360有论坛中心?
深圳域名注册 域名备案网站 加勒比群岛 好看的留言 密码泄露 浙江独立 合肥鹏博士 三拼域名 adroit 四核服务器 怎么建立邮箱 中国电信宽带测速器 drupal安装 空间购买 移动服务器托管 免费外链相册 西安主机 华为k3 亿库 sonya 更多