XML基础知识及Namespaces理解

[size=medium]XML 是"Extensible Markup Language" 的简称,是一种text-based,tag-based(基于文本,基于标签)的标记性语言。
XML 可以分为两种不同的mode(模式) :

[color=red]Well-formed XML
Valid XML[/color]

Well-formed XML相对来说比较自由,没有预先设定好的schema(架构)来约束,可以在不违反 nesting rule for tag 的情况下,创建自己的tag,标签。
刚开始学XML,必须得清楚几个重要的概念 :

1,[color=blue]Tags[/color]
2,[color=blue]Element,Root Element,Empty Element[/color]
3,[color=blue]Attribute[/color]
4,[color=blue]Namespace[/color]
5,[color=blue]Namespace Name[/color]
6,[color=blue]Qualified Name[/color]
7,[color=blue]Local Name[/color]

Tag[color=red]s[/color] -标签,在上面之所以称标签为Tags而不是Tag,是因为在XML中,标签总是成对出现的,当然除了 Empty Tag。举个例子
[color=blue]<Name>[/color]Chuan Su[color=blue]</Name>[/color]
当一个 <Name>(opening tag)出现时,后面必定会跟上一个matched </Name>(closing tag)
所以 [color=red]Tags in XML are text surrounded by triangular brackets,<...> [/color]
两个tag,opening tag与closing tag,并且包括在两标签内的everything,就称为XML的一个 [color=red]Element。[/color]
说了这么多先来看个简单的例子吧。[/size]
<?xml version="1.0" encoding="UTF-8" standalone = "yes" ?>
<StarMovieData>
<Star>
<Name>Carrie Fisher</Name>
<Address>
<Street>123 Maple St.</Street>
<City>Hollywood</City>
</Address>
<Address>
<Street>5 Locust Ln.</Street>
<City>Malibu</City>
</Address>
</Star>
<Star>
<Name>Mark Hamill</Name>
<Street>456 0ak Rd.</Street>
<City>Brentwood</City>
</Star>
<Movie>
<Title>Star Wars</Title>
<Year>1977</Year>
</Movie>
</StarMovieData>

第一行称为XML文件的prolog(开端),最小的XML prolog为
[color=violet]<? xml version = "1.0" ?>[/color]仅表明这个文件是XML 文件
对于attribute [color=red] standalone = "yes"[/color] 这个的理解,官方网站上这样讲的[quote]standalone: Tells whether or not this document references an external entity or an external data type specification. If there are no external references, then "yes" is appropriate.[/quote]
也可以简单的理解为这个XML文件不涉及到 DTD,当看到 standalone = "yes"就可以直接说 这个xml 文件 是一个[color=red]well-formed XML[/color]。

上面讲到了 element, 在这个例子中,可以看到有很多个elements,但是在一个xml文件中[color=red]root element[/color]只有一个,位于
<?xml version="1.0" encoding="UTF-8" standalone = "yes" ?>
<rootElement>

..........

</rootElement>

[quote]在 XML 中,an element can have[color=red]attributes(name-value pairs) within its opening tag.[/color] [/quote]
每一个xml element 可以有多个attributes,attributes是以 “name = value"这样的形式出现在 这个element的opening tag当中的。

比如上面例子中的 "<Movie>...</Movie> "element,如果要对Movie添加属性的话,
写为
<Movie,title = "Star Wars",year = 1977>
<Country>America</Country>
<Time>120 minutes</Time>
</Movie>

此时的 title,year不再是element而是 element Movie的 attributes了。
在XML 中也可以有 [color=red]Empy element[/color],在上面的例子当中
可以出现 [color=red]<Movie/>[/color] 这样一个单纯的Empty element,即只有一个tag,但是Empty element可以有自己的attributes,例如
<Movie,title = "Star Wars",year = 1977 />


[size=large][color=red]Namespaces[/color][/size]

由于关于Namespace 写的态度,姑且放到了 我的博客分类[color=red]
《详解XML namespace》[/color]一文中了,请见谅。
weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值