以前也看了一些XML的一些知识,但过段时间接着就忘了,这就是“好记性不如烂笔头”了,现在是“好记性不如Blog一下”。虽然说XML已经用了好多了,比如写asp.net程序的时候的web.config文件就是xml形式的,只不过并没有系统的学习过。下面便从基础开始,争取能坚持下去。
    管理XML的历史知识就不介绍了,直接切入正题,下面下列各XML格式的文档:
<?xml version="1.0" ?>
  
<article>
    
<title name="blog">xml学习</title>
  
</article>
这就是一个简单的XML文档了,下面说下XML文档规则:
1.XML文档必须包含在一个根元素中,上例中为 <article>
2.元素不能重叠,也就说下面的文档是错误的:
<?xml version="1.0" ?>
  
<article>
    
<title>xml学习<content></title>
     xml入门
</content>
  
</article>
3.结束标记是必须的,也即有始有终,并不像html中<br>可以单独存在,这在xml中是不允许的
4.xml跟我们写c#程序一样是区分大小写的,即<tiu>与<Tiu>是不同的两个标记
5.xml文档的属性必须用引号引起来,双引号和单引号都可以
6.xml声明,即上面实例的第一行,其还包括两个属性:encoding和standalone,encoding表示采用的编码形式,默认为utf-8,standalone的值为yes或no,默认为no,yes表示不引用任何其他文档
7.注释,xml注释和html的注释一样:<!--注释内容-->
8.还有一些字符:&lt;:小于符号(<);&gt;:大于符号(>),&quot;(双引号),&apos;(单引号),&amp;(&号)
9.还有就是名称空间,作用就是来区分在不同xml文档中定义的相同名字,比如在一个描述商品的文档中也有个title元素,显然那个title的意义和上面例子中title意义不同,如果要组合在一块就要用到名称空间来区分。就像c#中的命名空间可以区分同名的类一样。
    用来查看xml是否合法的就是DTD或xml schema了,它们是来定义xml文档里的元素及相关属性的, 先记这么多,以后再慢慢记 ,下面摘别处一段描述XML Schema的例子,这对XML Schema可以有感性的认识:

下面是一段 XML 模式。它增加了两个约束:<state> 元素的值必须刚好是两个字符长,<postal-code> 元素的值必须与正则表达式 [0-9]{5}(-[0-9]{4})? 相匹配。它更清楚地表达了有效的文档看起来是什么样子。下面是模式:


<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="address">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="name"/>
<xsd:element ref="street"/>
<xsd:element ref="city"/>
<xsd:element ref="state"/>
<xsd:element ref="postal-code"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

<xsd:element name="name">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="title" minOccurs="0"/>
<xsd:element ref="first-Name"/>
<xsd:element ref="last-Name"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

<xsd:element name="title" type="xsd:string"/>
<xsd:element name="first-Name" type="xsd:string"/>
<xsd:element name="last-Name" type="xsd:string"/>
<xsd:element name="street" type="xsd:string"/>
<xsd:element name="city" type="xsd:string"/>

<xsd:element name="state">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:length value="2"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>

<xsd:element name="postal-code">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="[0-9]{5}(-[0-9]{4})?"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:schema>

posted on 2006-12-28 13:07  Tiu  阅读(312)  评论(0编辑  收藏  举报