⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0301-0206.htm

📁 xml帮助文档
💻 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>
   &nbsp;&nbsp;&nbsp;
      <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%">&nbsp;&nbsp;&nbsp; &lt;!ELEMENT 联系人(姓名,(电话<FONT 
            color=#ff0000><STRONG>|</STRONG></FONT>EMAIL))&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;!ELEMENT 姓名(#PCDATA)&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;!ELEMENT 
            电话(#PCDATA)&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;!ELEMENT 
          EMAIL(#PCDATA)&gt;</TD></TR></TBODY></TABLE></CENTER></DIV>
      <P>注意,XML正则表达式的匹配原则不允许循环逻辑。所以,OR的意思是或者选这个或者选那个,但不能两个都选,也不能两个都不选。是不是有点绕?下面我们来举几个例子,你就一目了然了。</P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" border=1>
        <TBODY>
        <TR>
          <TD width="100%">&lt;联系人&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;姓名&gt;张三&lt;/姓名&gt;<BR>&lt;/联系人&gt;</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%">&lt;联系人&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;姓名&gt;张三&lt;/姓名&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;电话&gt;12345678&lt;/EMAIL&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;EMAIL&gt;zhang@yahoo.com&lt;/EMAIL&gt;<BR>&lt;/联系人&gt;</TD></TR></TBODY></TABLE></CENTER></DIV>
      <P>同样,这个例子仍是一个“无效的”XML片段,因为它既有“电话”元素,又有“EMAIL”元素。这里可不是“姜太公钓鱼——多多益善”噢。</P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" border=1>
        <TBODY>
        <TR>
          <TD width="100%">&lt;联系人&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;EMAIL&gt;zhang@aaa.com&lt;/EMAIL&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;姓名&gt;张三&lt;/姓名&gt;<BR>&lt;/联系人&gt;</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%">&lt;联系人&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;姓名&gt;张三&lt;/姓名&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;电话&gt;12345678&lt;/EMAIL&gt;<BR>&lt;/联系人&gt;</TD></TR></TBODY></TABLE></CENTER></DIV>
      <P>或者是:</P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" border=1>
        <TBODY>
        <TR>
          <TD width="100%">&lt;联系人&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;姓名&gt;张三&lt;/姓名&gt;<BR>&nbsp;&nbsp;&nbsp; 
            &lt;EMAIL&gt;zhang@yahoo.com&lt;/EMAIL&gt;<BR>&lt;/联系人&gt;</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%">&lt;!ELEMENT 
      联系人(姓名,电话|EMAIL)&gt;</TD></TR></TBODY></TABLE></CENTER></DIV>
      <P>要想使用多种连接符,只有通过创建子组的方式,使用</P>
      <DIV align=center>
      <CENTER>
      <TABLE width="80%" border=1>
        <TBODY>
        <TR>
          <TD width="100%">&lt;!ELEMENT 
      联系人(姓名,(电话|EMAIL))&gt;</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 + -