Java学习日记12:xml基础

xml基础

XML(可扩展的标签语言):

可以定义语义和语法。HTML语法是别人定义好的,XML是自己定义的,格式和HTML类似。

用处:

  1. 结构化语言(是一种结构化的数据,可以传东西给客户端。类似的还有json。),可以传输数据。可以存储二维的数据,可以表示一个数据表的内容。
  2. 异构设备之间的数据交换。XML是通用的。开发苹果用C,安卓用JAVA,交互数据的时候就可以用XML。或者假如要把MySQL数据库转化为Oracle数据库,就可以先转化为xml。

GML 通用的标签语言,SGML国际化的通用标签语言。
XML是简化小型的SGML。(W3C推荐的),这样就比较适用于互联网。

xml语义严谨

任何一个小差错都会出现错误。(就比如属性值没有双引号,或者没有大小写,或者标签没有合理嵌套)

  1. 一个文档只能有一个根节点。就是这个xml最开始的那个标签。
  2. 属性值必须用双引号括起来
  3. 大小写敏感
  4. 有开始标签就要有结束标签
  5. id值不能重复
  6. 文档的开始必须是xml声明。

XML版本声明:

<?xml version= “1.0” encoding= “utf-8” standalone=”yes” ?>

version:版本
encoding:当前页面的编码,一般给utf-8
standalone:当前xml语法是否完整。(它是独立的文档吗?yes就是它不依赖于其他文档,就是当前文档的语义语法在当前文档定义。No的话就是新建一个文档专门定义这个文档的语义和语法。)

文档类型声明:

(用来指出定义XML语义所用的DTD,有两种格式)
(其实就是定义这个xml中所用到的标签,包括这个标签的属性啊,出现多少次啊,顺序啊什么的。)

1.DTD在外部文档中。

<!DOCTYPE hello SYSTEM “hello.dtd”>

这里的hello代表:当前页面的根节点叫hello。
这里的SYSTEM代表,这个是私有的。(公有的是PUBLIC
这里最后面这个代表:当前这个xml的语义和语法由谁来定义。

2.在XML中直接给出DTD

<!DOCTYPE hello[
<!ELEMENT hello(#PCDATA)>
]>

例子:

<hello>
hello
</hello>

元素:

  • 空元素:<br />
  • 带属性的元素<hello id=”1”> </hello>
  • 带内容的元素<hello>hello</hello>
  • 带内容和属性的元素<hello id=”1”>hello</hello>

元素的内容构成:

  • 子元素:可以是标签也可以是内容
    看下面例子,就像下面city标签的子元素就有5个,因为转行也算一个。
    例子:
<hello>
<city id=”1”>
<level>1</level>
<name>xi’an</name>
</city>
<city id=”1”>
<level>2</level>
<name>yan’an</name>
</city>

</hello>
  • 字符数据 不包括(&、<、]]>)
<articles>
    <art>
        <title>明天下雨</title>
        <msg>
        不能出现”<”:这里的内容是以HTML的方式提交给服务器。如果这里出现了<h1></h1>之类的标签就会变得很复杂。
        不能出现”]]>”:比如if(i[i[0]]>0),或者是CDATA段。


</msg>
    </art>
</articles>
  • 预定义实体引用
    就是预先定义一个东西,然后在xml中就能用&…;这样的字段来代替。
    比如:&——–&
    <————<
    >————>
    "———“
    在DTD文档中:<!ENTITY writer “Bill Gates”>
    在xml文档中就可以这样调用:&writer;
    页面在显示的时候就会自动将&writer;替换成Bill Gates。
  • CDATA段
    假如在<msg>标签中就是想写HTML语言并且不想被浏览器读成HTML,就可以使用CDATA段。
<![CDATA[这里放你想要显示的字符]]>

其实如果想不被识别成CDATA段,可以在]]>这三个字符之间任意位置加一个空格。

注释:

要注意的是-->,解决方法也是加空格。

处理指令:

Xml遇到了处理不了的内容的时候,就要加上处理指令,就比如css的代码。
例如:<?xml-stylesheet href=”hello.css” type=”text/css”?>的意思是,如果文档中用到了hello.css这种文件,我声明mime类型是text/css,这个的默认程序是ie。

行尾处理:

回车:CR #xA
换行:LF #xD

格式良好的xml:

DTD:

是保证xml文档格式正确的有效方法,可以比较xml和dtd文件来看文档是否符合规范,元素和标签是否使用正确。

一个DTD文档包含:元素定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。

具体的在W3School里面学习。

XML Schema:

XML Schema:是以xml语言为基础的,用于替代DTD。也被称为XSD。

<schema>在这里面定义</schema>

这里有个概念叫名词空间,意义和Java的包一样。就是当遇到一样名字的类(标签)的时候,有包(名词空间)就能区分开来。
比如:xmlns:xs=http://www.xxx.xxx.com
用的时候就:<xs:element name=”note”/>

这个也可以在W3School里面看。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值