1第三讲XML语言规范一、从Hello文档讲起1.Hello文档代码如下:?xmlversion=1.0?FirstXMLHelloWorld!/FirstXML注:xml文档是区分大小写的2.XML文档的结构1)序文(prolog)?xmlversion='1.0'encoding='US-ASCII'standalone='yes'?注意所有字母都是小写2)文档元素(documentelement)二、元素1.什么是元素:元素就是文档的组件。2.元素的简单分类:A.只包含文本FirstXMLHelloWorld!/FirstXMLB.包含文本和元素FirstXMLHelloWorld!Date2005-9-28/Date/FirstXMLC.空元素(没有内容)kong/或br/br3.元素的命名规则1)必须以字母、下划线开头2)后面可以是字母、下划线、冒号、数字、连字号、句号4.元素开始和结束标签的位置的规则2A.结束标签位于开始标签之后B.不同元素标签不能交叉。例如:ahellobxml/aworld/b5.根元素A.每个XML文档有且只有一个根元素B.序文后面的第一个元素永远是XML文档的根元素C.根元素的结束标记后面不能再有任何标记三、属性1.属性的作用:bookpage=’427’author=”丘广华”price=”39”XML编程实例教程/book1)描述元素;2)除去元素名和内容以外,可以表达更多的关于元素的信息;3)描述元素的细节;4)给与元素特殊的标记。如ID、class2.属性的语法注意:1)同一元素中的属性名不能重复teamperson=sueperson=joeperson=jane可以改成:teampersons=suejoejane或teamperson1=sueperson2=joeperson3=jane或teampersonsue/personpersonjoe/personpersonjane/person/team2)属性值必须用单引号或双引号括起来3)单引号和双引号可以嵌套,但不能交叉choicetest='abchidef'/3.预留的属性名1)xml:lang2)xml:space3)xml:link4)xml:attribute四、转义字符1.小于号:<32.大于号:>3.双引号:"4.单引号:'5.&:&t五、命名空间1.为何需要命名空间2.命名空间的语法1)命名空间的声明:bookxmlns:book=””或shoppingxmlns:article=””2)命名空间的使用:在元素名中使用book:nameCLanguage/book:namebook:authorTanHQ/book:authorarticle:nameC语言在军事国防中的应用/article:namearticle:authorzhangshan/article:author在属性名中使用storebook:name=”CLanguage”abcdefg/store3.命名空间声明的位置(作用域)1)本元素中;bookxmlns:book=””book:nameXML语言教程/book:namebook2)父元素中;shoppingxmlns:article=””article:nameC语言在军事国防中的应用/article:namearticle:authorzhangshan/article:author/shopping4.默认的命名空间FirstXMLxmlns==””article:nameC语言在军事国防中的应用/article:namearticle:authorzhangshan/article:author/shoppingFirstXML5.命名空间的有效性(放在后面和DTD一起讲)六、国际化的字符集1.如何在xml文档中显示中文(简体和繁体)?xmlversion='1.0'encoding='gb2312'?42.有关的概念编码:每一个符号在文件中用一个唯一的数字表示字符集:字符到数字的映射字符集的size的确定需要考虑空间效率和字符的数量3.ASCII字符集(7位)4.Unicode字符集(16位65536)1)已经使用了50000个,其中汉字200002)在一个文档中不可能同时使用50000个字符,所以出现了字符子集,称为字符编码3)XML默认的是UTF-8编码,它是Unicode的子集,包含有ASCII码5.UCS字符集(32位大约40亿)56.使用不同的字符编码时所要考虑的几个问题1)输入法(所使用的编辑器):ffff;2)编辑器存储文件时所使用的编码3)一个编码并不与一种语言对应7.本地编码向Unicode编码的转换Java语言bin文件夹中1)native2ascii.exefile1UniFile22)native2ascii–encodeingbig5file1UniFile23)native2ascii–encodeingbig5–reverseUniFile2file1七、杂项1.注释语句:例如:!--========================================================--!--________________________________________________________--!-------------------------------!------------------------------------------------------------!----Don'tdothis!----2.CDATA区域作用:意味着“非标记”例如:![CDATA[abhtmlbodybookname/a/html]]3.处理指令ProcessingInstructions用来描述或规定某种特殊的信息例如:?xmlversion=1.0encoding=UTF-8??xml-stylesheettype=text/xslhref=1.xsl??abc123?6八、形式良好的(Well-formed)的文档1.包含元素或文本的元素必须有开始和结束标签listlistitemsoupcanlistitemalligatorlistitemtree/list2.空元素的标签在结束括号前必须有斜杠graphicfilename=icon.png/graphicfilename=icon.png3.所有属性值必须在引号中graphicfilename=icon.png/4.元素不能交叉重叠aThisisbapoor/anestingscheme./b5.,]],&这些字符不能出现在可解析文档中equation52/equation6.元素名称只能以字符和下划线开头。