曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
在DTD 中的LATEX 聲明具有如下形式:
<!NOTATION LATEX SYSTEM "/usr/local/bin/latex">
甚至這個名字可以是可被應用程序識別的其他名字。對于使用處理指令的應用程序來說,各個細節部分是非常明確的。確實,
大部分依賴處理指令的應用程序在處理指令的內容上利用更多的結構。例如,研究如下在IBM 的Bean Markup Language 中
使用的處理指令:
<?bmlpi register demos.calculator.EventSourceText2Int?>
使用處理指令的應用程序名字為bmlpi。賦予應用程序的數據為字符串register demos.calculator.EventSourceText2Int,
這些數據將包含全部合格的Java 類名。這就告訴名為bmlpi 的應用程序使用Java 類
demos.calculator.EventSourceText2Int,將操作事件轉換為整數。如果bmlpi 在讀取文檔是遇到這個處理指令,將載入類
demos.calculator.EventSourceText2Int,從此往后利用該類元素將事件轉化為整數。
如果這聽起來很明確也很詳細的話,那是因為它們原來就是如此。處理指令不是文檔的通用結構部分,它們為特定的應用程
序提供額外的明確的信息,而不是為所有讀取該文檔的應用程序提供信息。如果其余一些應用程序在讀取文檔時遇到這個說
明,它們將簡單地跳過這些說明。
處理指令除了不能位于標記或者CDATA 字段之內,可以放在XML 文檔中的任意部位。它們可以位于序進程、DTD、元素內容
中,甚至可在文檔結束標記之后。因為處理指令不是元素,所以不會影響文檔的樹型結構。沒有必要打開或者關閉處理指令,
也沒有必要考慮它們在其他元素中的嵌套問題。處理指令不是標記,不會對元素進行限定。
到此我們已經很熟悉了一個處理指令的例子:xml-stylesheet 處理指令把樣式單與文檔相結合:
<?xml-stylesheet type="text/xsl" href="baseball.xsl"?>
雖然這些例子中的處理指令位于序進程中,但是處理指令可以在文檔的任意位置出現。因為處理指令不是元素,所以沒有必
要聲明為包含它們元素的子類元素。
以字符串xml 開頭的處理指令在XML 規范中留作特殊的用途。此外,在處理指令中,可以自由使用除文檔結束標記符(?>)
外的任意名字和任意文本字符串。例如,下面的例子就是完全有效的處理指令:
<?gcc HelloWorld.c ?>
<?acrobat document="passport.pdf"?>
XML 實用大全
第 331 頁
<?Dave remember to replace this one?>
請記住XML 處理器不會對處理說明進行任何處理,僅僅是把他們傳送給應用程序。應用程序決定如何處理這些說明。
大部分應用程序簡單地跳過他們無法理解的處理說明。
有些時候了解不可析實體的類型還是不夠的。還需要了解應用程序如何運行和查看實體,以及需要提供給應用程序的參數是
什么。 這些信息都可以通過處理指令來提供。因為處理指令所包含的數據沒有什么限制,所以在制定說明時就相對容易一
些,這些說明是決定記號中列出的外部程序將采取什么行為。
這樣的處理指令可以是查看數據塊的程序名,也可以是幾千字節的配置信息。應用程序和文檔的作者當然必須采用同樣的方
法來確定何種不可析外部實體采取何種處理指令。清單11-7 顯示一個方案,該方案使用一個處理指令和PDF 記號來通知
Acrobat Reader 關于物理紙張的PDF 格式,以便Acrobat Reader 顯示PDF 的內容。
清單11-7:在XML 中嵌入PDF 文檔
<?xml version="1.0" standalone="yes"?>
<!DOCTYPE PAPER [
<!NOTATION PDF PUBLIC
"-//IETF//NONSGML Media Type application/pdf//EN"
"http://www.isi.edu/in-notes/iana/assignments/media-types/
application/pdf">
<!ELEMENT PAPER (TITLE, AUTHOR+, JOURNAL, DATE_RECEIVED,
VOLUME, ISSUE, PAGES)>
<!ATTLIST PAPER CONTENTS ENTITY #IMPLIED>
<!ENTITY PRLTAO000081000024005270000001 SYSTEM
"http://ojps.aip.org/journal_cgi/getpdf?KEY=PRLTAO&cvips=PR
LTA0000081000024005270000001"
NDATA PDF>
<!ELEMENT AUTHOR (#PNDATA)>
<!ELEMENT JOURNAL (#PNDATA)>
<!ELEMENT YEAR (#PNDATA)>
<!ELEMENT TITLE (#PNDATA)>
XML 實用大全
第 332 頁
<!ELEMENT DATE_RE EIVED (#PNDATA)>
<!ELEMENT VOLUME (#PNDATA)>
<!ELEMENT ISSUE (#PNDATA)>
<!ELEMENT PAGES (#PNDATA)>
]>
<?PDF acroread?>
<PAPER CONTENTS="PRLTAO000081000024005270000001">
<TITLE>Do Naked Singularities Generically Occur in
Generalized Theories of Gravity?</TITLE>
<AUTHOR>Kengo Maeda</AUTHOR>
<AUTHOR>Takashi Torii</AUTHOR>
<AUTHOR>Makoto Narita</AUTHOR>
<JOURNAL>Physical Review Letters</JOURNAL>
<DATE_RE EIVED>19 August 1998</DATE_RE EIVED>
<VOLUME>81</VOLUME>
<ISSUE>24</ISSUE>
<PAGES>5270-5273</PAGES>
</PAPER>
任何時候都該記住不是所有的處理器程序都會以你希望的方式去對待這個例子。實際上,大部分處理器都不會。可是,從讓
一個應用程序支持PDF 文件和其余非XML 媒體類型的角度來說,這也是一個值得考慮的方法。
XML 實用大全
第 333 頁
11.4 DTD 的條件部分
在創建DTD 和文檔的時候,或許需要文檔中沒有反映DTD 的部分作一些注釋。除了直接使用注釋,也可以把DTD 中的特定聲
明組放置在IGNORE 指令中的方式,從而忽略該聲明組。句法結構如下:
<![ IGNORE
declarations that are ignored
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML實用大全(96)