📄 xml1_0 中文文档(第二版)---2_ 文件 - fanqiang_com.htm
字号:
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#dt-charref">字符引用</A>,<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#dt-comment">注释</A>,<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#dt-cdsection">CDATA
段</A>定界符,<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#dt-doctype">文件类型声明</A>,<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#dt-pi">处理指令</A>,<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#NT-XMLDecl">XML
声明</A>,<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#NT-TextDecl">文本声明</A>,以及任何在文件实体顶层的空白(即,在文件元素之外且不在任何其他的标记中)。]</P>
<P><A name=dt-chardata></A>[定义:其他所有非标记的文本组成文件的<B>字符数据</B>。]</P>
<P>"and"号(&)和左尖括号(<)<EM>只有</EM>作为标记定界符,或在<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#dt-comment">注释</A>,<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#dt-pi">处理指令</A>,或
<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#dt-cdsection">CDATA
段</A>中时才能以常量形式出现。如果在其他地方需要用到这两个字符,它们必须用<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#dt-charref">数值式字符引用</A>来<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#dt-escape">转义</A>或分别用字符串"<CODE>&</CODE>"和"<CODE><</CODE>"表示。右尖括号(>)可以用"<CODE>></CODE>"表示,而当它在内容中的字符串"<CODE>]]></CODE>"中出现,但此字符串不表示一个
<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#dt-cdsection">CDATA
段</A>的结束时,<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#dt-compat">出于兼容性考虑</A>,必须用"<CODE>></CODE>"或一个字符引用转义得到。</P>
<P>在一个元素的内容中,字符数据可以是不包括任何标记的起始定界符的任意字符串。在一个 CDATA 段中,字符数据可以是不包括
CDATA 段结束定界符"<CODE>]]></CODE>"的任意字符串。</P>
<P>为了允许在属性值中包含单引号和双引号,省略符或称单引号(')可以被表示为"<CODE>&apos;</CODE>",而双引号(")可以被表示为"<CODE>"</CODE>"。
</P>
<H5>字符数据</H5>
<TABLE class=scrap>
<TBODY>
<TR vAlign=baseline>
<TD><A name=NT-CharData></A>[14] </TD>
<TD><CODE>CharData</CODE></TD>
<TD>::= </TD>
<TD><CODE>[^<&]* - ([^<&]* ']]>'
[^<&]*)</CODE></TD></TR></TBODY></TABLE>
<H3><A name=sec-comments>2.5 注释</A></H3>
<P><A name=dt-comment></A>[定义:<B>注释</B>可以在其他<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#dt-markup">标记</A>之外的文件中的任何位置出现。另外,它们可以在文件类型声明中文法允许的地方出现。它们不是文件<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#dt-chardata">字符数据</A>的一部分,XML
处理器可以,但不是必须,允许一个应用检索注释的文本。<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#dt-compat">出于兼容性考虑</A>,字符串"<CODE>--</CODE>"(双连字符)不能在注释中出现。]
注释中的参数实体不被识别。</P>
<H5>注释</H5>
<TABLE class=scrap>
<TBODY>
<TR vAlign=baseline>
<TD><A name=NT-Comment></A>[15] </TD>
<TD><CODE>Comment</CODE></TD>
<TD>::= </TD>
<TD><CODE>'<!--' ((<A
href="#NT-Char">Char</A> - '-')
| ('-' (<A
href="#NT-Char">Char</A> -
'-')))* '-->'</CODE></TD></TR></TBODY></TABLE>
<P>注释的一个例子:</P>
<TABLE cellPadding=5 width="100%" bgColor=#80ffff border=1>
<TBODY>
<TR>
<TD><CODE><!-- declarations for <head> & <body> --></CODE></TD></TR></TBODY></TABLE>
<P>注意,此文法不允许注释以 <CODE>---></CODE> 结尾。下面的例子<EM>不是</EM>格式正确的。</P>
<TABLE class=eg cellPadding=5 width="100%" bgColor=#99ffff
border=1><TBODY>
<TR>
<TD><PRE><!-- B+, B, or B---></PRE></TD></TR></TBODY></TABLE>
<H3><A name=sec-pi>2.6 处理指令</A></H3>
<P><A name=dt-pi></A>[定义:<B>处理指令(PI)</B>允许文件中包含由应用来处理的指令。]</P>
<H5>处理指令</H5>
<TABLE class=scrap>
<TBODY>
<TR vAlign=baseline>
<TD><A name=NT-PI></A>[16] </TD>
<TD><CODE>PI</CODE></TD>
<TD>::= </TD>
<TD><CODE>'<?' <A
href="#NT-PITarget">PITarget</A> (<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#NT-S">S</A>
(<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#NT-Char">Char</A>*
- (<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#NT-Char">Char</A>*
'?>' <A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#NT-Char">Char</A>*)))?
'?>'</CODE></TD></TR></TBODY>
<TBODY>
<TR vAlign=baseline>
<TD><A name=NT-PITarget></A>[17] </TD>
<TD><CODE>PITarget</CODE></TD>
<TD>::= </TD>
<TD><CODE><A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#NT-Name">Name</A>
- (('X' | 'x') ('M' | 'm') ('L' |
'l'))</CODE></TD></TR></TBODY></TABLE>
<P>PI 不是文件<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#dt-chardata">字符数据</A>的一部分,但必须传递给应用。PI
以用于指示传递给哪个应用的目标(<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#NT-PITarget"><CODE>PITarget</CODE></A>)开头。目标名字
"<CODE>XML</CODE>","<CODE>xml</CODE>",等等,保留用于本规范的此版本或后续版本的标准化。XML <A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#dt-notation">记法</A>机制可以用于
PI 目标的形式化声明。参数实体在处理指令中不被识别。</P>
<H3><A name=sec-cdata-sect>2.7 CDATA 段</A></H3>
<P><A name=dt-cdsection></A>[定义:<B>CDATA
段</B>可以出现在字符数据可以出现的任何地方,它们用于转义包含会被识别为标记的字符串的文本块。CDATA 段以字符串 "<CODE><![CDATA[</code>" 开始,以字符串 "<CODE>]]></CODE>" 结束:]</P>
<H5>CDATA 段</H5>
<TABLE class=scrap>
<TBODY>
<TR vAlign=baseline>
<TD><A name=NT-CDSect></A>[18] </TD>
<TD><CODE>CDSect</CODE></TD>
<TD>::= </TD>
<TD><CODE><A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#NT-CDStart">CDStart</A>
<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#NT-CData">CData</A>
<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#NT-CDEnd">CDEnd</A></CODE></TD></TR></TBODY>
<TBODY>
<TR vAlign=baseline>
<TD><A name=NT-CDStart></A>[19] </TD>
<TD><CODE>CDStart</CODE></TD>
<TD>::= </TD>
<TD><CODE>'<![CDATA['</CODE></CODE></TD></TR></TBODY>
<TBODY>
<TR vAlign=baseline>
<TD><A name=NT-CData></A>[20] </TD>
<TD><CODE>CData</CODE></TD>
<TD>::= </TD>
<TD><CODE>(<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#NT-Char">Char</A>*
- (<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#NT-Char">Char</A>*
']]>' <A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#NT-Char">Char</A>*))
</CODE></TD></TR></TBODY>
<TBODY>
<TR vAlign=baseline>
<TD><A name=NT-CDEnd></A>[21] </TD>
<TD><CODE>CDEnd</CODE></TD>
<TD>::= </TD>
<TD><CODE>']]>'</CODE></TD></TR></TBODY></TABLE>
<P>在一个 CDATA 段内,只有 <A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#NT-CDEnd"><CODE>CDEnd</CODE></A>
字符串被识别为标记,因此左尖括号和"&"可以以它们的常量形式出现,不需要(也不能)被换码为"<CODE><</CODE>"和"<CODE>&</CODE>"。CDATA
段不能嵌套。</P>
<P>一个 CDATA
段的例子,其中"<CODE><GREETING></CODE>"和"<CODE></GREETING></CODE>"被识别为<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#dt-chardata">字符数据</A>,而不是<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#dt-markup">标记</A>:
</P>
<TABLE cellPadding=5 width="100%" bgColor=#80ffff border=1>
<TBODY>
<TR>
<TD><CODE><![CDATA[<greeting>Hello,
world!</GREETING>]]></CODE></TD></TR></TBODY></TABLE>
<H3><A name=sec-prolog-dtd>2.8 序言(prolog)和文件类型声明</A></H3>
<P><A name=dt-xmldecl></A>[定义:XML 文件应该以一个 <B>XML 声明</B>开始,其中指明了所用
XML 的版本。] 例如,以下是一个完整的 XML 文件,它是<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#dt-wellformed">格式正确的</A>,但不是<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#dt-valid">有效的</A>:</P>
<TABLE cellPadding=5 width="100%" bgColor=#80ffff border=1>
<TBODY>
<TR>
<TD><CODE><?xml version="1.0"?><GREETING>Hello,
world!</GREETING> </CODE></TD></TR></TBODY></TABLE>
<P>下面这个也同样:</P>
<TABLE cellPadding=5 width="100%" bgColor=#80ffff border=1>
<TBODY>
<TR>
<TD><CODE><GREETING>Hello, world!</GREETING>
</CODE></TD></TR></TBODY></TABLE>
<P>版本号 "<CODE>1.0</CODE>" 应该用于表明与本规范的本版本相一致,如果使用了值
"<CODE>1.0</CODE>" 但又与本规范的本版本不一致,那么这是文件的一个错误。XML 工作组打算赋予本规范的后续版本不同于
"<CODE>1.0</CODE>"
的数值,但这并不代表开发后续版本的承诺,也不代表如果有后续版本,会使用任何特殊的命名方案的承诺。因为不排除有后续版本的可能性,提供了本构造(construct)作为一旦需要时进行自动版本识别的手段。当处理器收到的文件标有它们不支持的版本时,可以给出一个错误。</P>
<P>XML 文件中标记的功能是描述文件的存储格式和逻辑结构,并将属性-值对和逻辑结构关联起来。XML 提供一种称为<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#dt-doctype">文件类型声明</A>的机制,用于定义对逻辑结构的约束,支持预定义存储单元的使用。<A
name=dt-valid></A>[定义:如果一个 XML
文件有相应的文件类型声明并且它遵循其中的约束,则称它是<B>有效的(valid)</B>。]
<P>
<P>文件类型声明必须位于文件第一个<A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#dt-element">元素</A>之前。</P>
<H5>序言</H5>
<TABLE class=scrap>
<TBODY>
<TR vAlign=baseline>
<TD><A name=NT-prolog></A>[22] </TD>
<TD><CODE>prolog</CODE></TD>
<TD>::= </TD>
<TD><CODE><A
href="http://fanqiang.chinaunix.net/program/html/2001-05-17/2004.shtml#NT-XMLDecl">XMLDecl</A>?
<A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -