有效的XML文档——DTD
DTD是一套关于标记符的语法规则,是一个ASCII码文本文件,后缀名为.dtd。
内部DTD
基本语法格式为:
<!DOCTYPE 根元素名称[
<!ELEMENT 子元素名称(#PCDATA)>
]>
其中:
<!DOCTYPE:文档类型声明的起始定界符
根元素名称:一个XML文档只有一个根元素
]>:文档类型声明的结束定界符。
外部DTD
<!DOCTYPE 根元素名称 SYSTEM “DTD-URL”>
或者
<!DOCTYPE 根元素名称 PUBLIC “DTD-name” “DTD-URL”>
其中:
<!DOCTYPE:文档类型声明的起始定界符
根元素名称:在外部DTD中定义的根元素
DTD-URL:通过URL将外部DTD引用到XML文档中
DTD的基本结构
DTD的基本结构包括XML声明、元素声明、元素间的相互关系、属性声明、实体声明等。
结构模板如下所示:
<!ELEMENT…> <!—定义一个XML元素-->
<!ELEMENT…>
…
<!ATTLIST…> <!—指定元素拥有的属性-->
<!ATTLIST…>
…
<!EMTITY…> <!—定义一个实体-->
<!NOTATION…> <!—定义一个符号-->
…
DTD的元素属性声明
<!ATTLIST 元素名 属性名 属性类型 属性附加声明>
其中:
<!ATTLIST:表示属性声明语言的开始
元素名:属性所属的XML元素的名称
属性名:XML元素对应属性的名称
属性的默认值:
#REQUIRED:必须赋值的属性,在XML文档中必须给出这个属性的属性值
#IMPLED:属性值可有可无的属性,不要求在XML文档中给该属性赋值,也不必在DTD中为该属性提供默认值
#FIXED value:固定取值的属性
Default value:事先定义了默认值的属性
DTD实体说明
内部通用实体
内部通用实体是在文档实体内部定义和使用的实体,其内容通常是一段文本字符,可在XML文档中使用,也可以在DTD中使用,其格式为:
<!ENTITY entity_name “entity_value”>
其中:
<!ENTITY 为关键字,必须大写
内部通用实体的语法以&开始,以;结束,其格式为:
& entity_name
外部通用实体
外部通用实体是指在文档实体以外定义的,需要通过URL才能引用的实体。外部通用实体为独立文件,可被多个文档引用,其定义为:
<!ENTITY entity_name “URL”>
参数实体
参数实体与通用实体存在如下区别:
在引用形式上,通用实体的引用为&entity_name;,而参数实体的引用为%entity_name;
在引用范围上,通用实体可在XML文档中引用,也可在DTD中引用,而参数实体只可在DTD内部引用。
内部参数实体:
<!ENTITY % entity_name “entity_value”>
外部参数实体:
<!ENTITY % entity_name “URL”>
XML Scheme
XSD中的元素
XSD文档至少要包含:schema根元素和XML模式命名空间的定义、元素定义。
schema根元素语法如下:
<xsd:schema xmlns:xsd=“http://www.w3.org/2001/XMLSchema”>
…
</xsd:schema>
在XSD中必须定义一个且只能定义一个schema根元素。根元素中包括模式的约束、XML模式命名空间的定义,其他命名空间的定义、版本信息、语言信息和其他一些属性
其中元素语法如下:
<xsd:element name=”user” type=”xsd:string” />
XSD中的元素是利用element标识符来声明的。其中name属性是元素的名字,type属性是元素值的类型,在这里可以是XML Schema中内置的数据类型或其他类型,如下所示:
<xsd:schema xmlns:xsd=“http://www.w3.org/2001/XMLSchema”>
<xsd:element name=”user” type=”xsd:string” />
</xsd:schema>
以上文档对应的有效XML文档如下:
<?xml version=”1.0”?>
<user>string</user>
在定义属性:
在XML Schema文档中可以按照定义元素的方法定义属性,但受限制的程度较高。它们只能是简单类型,只能包含文本,且没有子属性。可以应用在attribute元素定义中的属性如下:
default ——初始默认值
fixed ——不能修改和覆盖的属性固定值
name —— 属性的名称
ref —— 对前一个属性定义的引用
type —— 该属性的XSD类型或者简单类型
use —— 如何使用属性
form ——确定attributeFormDefault的本地值
id —— 模式文档中属性唯一的ID
Default、fixed、name、ref和type属性与在element标记中定义的对应属性相同,但type只能是简单类型。Use属性的值可以是:optional(属性不是必须的,此为默认属性)、prohibited或者required(属性是强制的)。
创建属性语法如下:
<xsd:attribute name=”arr” type=”xsd:integer” />
CSS基本语法
定义样式:
选择器{
属性1:属性值1;
属性2:属性值2;
…
属性n:属性值n;
}
XML与CSS结合
XML文档调用css有三种形式:外联式,行内式,嵌内式;其关联指令格式如下:
<?xml-stylesheet type=”text/css” href=”CSS文件的URL”?>
其中:
<?xml-stylesheet处理指令表示当前XML文档在显示时需要使用样式表
Type=”text/css”表示使用CSS类型的样式表
Hreh=用来指定样式表文件的路径
CSS属性
一般常见的属性和值有:
font-family: sans-serif; /* 定义字体 */
该属性用于指定字体的类型,默认值时浏览器确定的字体,如果名称中有空格,属性值要用双引号括起来,如下所示:
Font-family:Arial;
Font-family:“Time New Roman”
font-size: 12px; /* 定义字体大小 */
该属性的值用来设置字体的大小
font-weight: bold; /* 定义字体粗细 */
该属性的值用来设置字体的粗细程度
background-color: #ffffff; /* 定义背景颜色 */
该属性用于指定背景图片的颜色
text-align: center; /* 定义文本水平对齐方式 */
该属性用来设置文本的对齐方式,可取值left,right,center,justify
vertical-align: middle;
该属性用来设置文本的垂直对齐方式,属性值可取baseline,sub,super,top,text-top,middle,text-bottom等
border: 1px solid black; /* 定义边框 */
该属性用于定义边框距离属性,可取值right,top,bottom等
Position:absolute;
该属性用于设置图形位置的偏移,可取值absolute,relative等
margin: 10px; /* 定义外边距 */
该属性用于定义外边框距离,可取值top,bottom,right等