?? 0301-0206.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0071)http://162.105.170.55/ASPs/GetLearningArticleTemp.asp?section=0301-0206 -->
<HTML><HEAD><TITLE>XML中國論壇 - 初學進階 - 3.1.2.6 OR或</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>TABLE {
FONT-SIZE: 9pt; COLOR: black; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"
}
.pt9 {
FONT-SIZE: 9pt; COLOR: black; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"
}
.pt10 {
FONT-WEIGHT: 700; FONT-SIZE: 10pt; LINE-HEIGHT: 18pt; FONT-FAMILY: "宋體"
}
.TempOutline {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; COLOR: #666666; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.TempOutline1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; COLOR: #666666; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.Outline {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.Outline1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.Outline11 {
FONT-SIZE: 9pt; MARGIN-LEFT: 38pt; TEXT-INDENT: -50pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.passage0 {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.passage1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.passage11 {
FONT-SIZE: 9pt; MARGIN-LEFT: 38pt; TEXT-INDENT: -50pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
.passage111 {
FONT-SIZE: 9pt; MARGIN-LEFT: 51pt; TEXT-INDENT: -64pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋體"; TEXT-DECORATION: none
}
</STYLE>
<META content="Microsoft FrontPage 5.0" name=GENERATOR></HEAD>
<BODY vLink=#000000 aLink=#000000 link=#000000 leftMargin=0 topMargin=0
onload=""><!-- 以下為主體內容 -->
<div align="center">
<center>
<TABLE width="100%" border=0 style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0">
<TBODY>
<TR vAlign=top>
<TD width=32 rowSpan=2></TD>
<TD vAlign=center width=670><IMG height=33
src="image/title_learner.gif" width=226></TD>
<TD width=46 rowSpan=2></TD>
</TR>
<TR vAlign=top>
<TD width="670" ><!-- 正文內容 -->
<DIV class=pt10 ><B>3.1.2.6 OR或</B></DIV>
<DIV></DIV><BR>
<DIV class=pt9>
<P>符號“<FONT
color=#ff0000><STRONG>|</STRONG></FONT>”描述了一個OR操作。因此,下面的DTD片段所規定的XML元素是:所有的“聯系人”元素應該有一個“姓名”子元素,同時,在此之后還應該有一個“電話”或一個“EMAIL”元素,但不能同時有“電話”和“EMAIL”兩個元素。</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"> <!ELEMENT 聯系人(姓名,(電話<FONT
color=#ff0000><STRONG>|</STRONG></FONT>EMAIL))><BR>
<!ELEMENT 姓名(#PCDATA)><BR> <!ELEMENT
電話(#PCDATA)><BR> <!ELEMENT
EMAIL(#PCDATA)></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>注意,XML正則表達式的匹配原則不允許循環邏輯。所以,OR的意思是或者選這個或者選那個,但不能兩個都選,也不能兩個都不選。是不是有點繞?下面我們來舉幾個例子,你就一目了然了。</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><聯系人><BR>
<姓名>張三</姓名><BR></聯系人></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>這個例子是一個“無效的”XML片段,因為DTD中規定或者有一個“電話”元素,或者有一個“EMAIL”元素,但上面這個例子中兩種元素都沒有。</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><聯系人><BR>
<姓名>張三</姓名><BR>
<電話>12345678</EMAIL><BR>
<EMAIL>zhang@yahoo.com</EMAIL><BR></聯系人></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>同樣,這個例子仍是一個“無效的”XML片段,因為它既有“電話”元素,又有“EMAIL”元素。這里可不是“姜太公釣魚——多多益善”噢。</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><聯系人><BR>
<EMAIL>zhang@aaa.com</EMAIL><BR>
<姓名>張三</姓名><BR></聯系人></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>這個例子也不合DTD要求,盡管它只有“EMAIL”元素,沒有“電話”元素,但“EMAIL”元素放錯了地方。DTD中規定,“姓名”元素只能放在“EMAIL”或“電話”元素之前。</P>
<P>一個符合上述DTD定義的“有效的”XML文件的定義應該是:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><聯系人><BR>
<姓名>張三</姓名><BR>
<電話>12345678</EMAIL><BR></聯系人></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>或者是:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><聯系人><BR>
<姓名>張三</姓名><BR>
<EMAIL>zhang@yahoo.com</EMAIL><BR></聯系人></TD></TR></TBODY></TABLE></CENTER></DIV>
<P><STRONG>注意</STRONG>:在一個組中,只允許使用一種連接符(例如“,”或“|”)。因此,象下面這樣定義的DTD是不合法的:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><!ELEMENT
聯系人(姓名,電話|EMAIL)></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>要想使用多種連接符,只有通過創建子組的方式,使用</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><!ELEMENT
聯系人(姓名,(電話|EMAIL))></TD></TR></TBODY></TABLE></CENTER></DIV></DIV>
<P></P>
<P></P></TD></TR></TBODY></TABLE>
</center>
</div>
<P></P>
<P>
<P></P></BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -