簡介學術版XML標記

── 以《般若波羅蜜多心經》為例


一、前言
二、標記符號的設定
三、標記符號的應用
  1. 經文的標記
  2. 校勘條目 vs <app> (Apparatus Entry)
  3.《般若波羅蜜多心經》學術版XML電子檔範例
四、結語
附件:學術版XML之DTD的設定


一、前言

  在佛典電子化的過程中,如果僅僅只是做文字的電子化,那便喪失了原來書本資料所擁有的許多寶貴資訊,例如:經名、年代、作者、譯者、校勘等等。因此 CBETA的大正藏電子化工作,使用XML(eXtensible Markup Language) 標記技術將這些寶貴的資訊記錄下來,以便後續進行更廣泛的學術研究應用。

  XML 是一個允許使用者自訂標記的語言,佛教經典是否能有一套共同的標準標記,以利將來的資訊交換?CBETA採用國際標準TEI (Text Encoding and Interchange),TEI 是針對電子文獻所制定的標準標記組(tag set),透過使用國際標準標記,使 CBETA製作的電子佛典更便於國際間分享。

  然而,由於 TEI並不是針對中文文獻所設計的,在 CBETA的實做過程中,發現仍然有許多標記是 TEI所未提供的,於是我們採用這樣的策略:儘量採用 TEI標準的標記,在 TEI�媢磞b找不到適用的標記,便嘗試著自己制定適用於中文佛典的標記。期待 CBETA這樣的工作,能為未來佛典的標準標記有所貢獻。

  以下就延續簡單標記的介紹,說明CBETA學術版XML佛典電子化的文件標準標記。

二、標記符號的設定

  CBETA學術版XML所用的標記符號有下列數種:

<header>:表示一經電子檔的開頭。
<title>:表示經文等的標題。
<trailer>:表示卷終的經題。
<app>:Apparatus Entry,表示底本與異本之容器,含<lem>,<rdg>。
<lem>:Lemma,表示底本的文字,在wit屬性(Witness)記錄版本的名稱。可包含一組以上的<app>標記定型式。
<rdg>:Reading,表示異本的文字,在wit屬性記錄版本的名稱。只允許<note>及<p>二種標記。
<div1>:Text Division,在經文中把它看成是一部經文的完整內容。可包含一組以上的<app>標記定型式。
<juan>:表示「卷」(juan)。可包含一組以上的<app>標記定型式。
<jhead>:表示「卷」(juan)的開頭(head)。
<byline>:表示「作者」、「譯者」等。可包含一組以上的<app>標記定型式。
<head>:表示一經中的「品」名。可包含一組以上的<app>標記定型式。
<p>:Paragraph,表示經文的一個「段落」。可包含一組以上的<app>標記定型式。
<pb>:Page Break,表示「欄」。
<lb>:Line Break,表示每行的行首資訊。
<lg>:Line Group,表示一首「偈頌」之容器,含<l>。
<l>:Verse Line,表示一句四言、五言、七言或九言的「偈頌」。
<fan>:表示反切音之容器,含<zi>,<yin>。
<zi>:表示反切音解的目的字。
<yin>:表示反切音解的音。
<note>:表示「注」。
<corr>:Correction,表示訂正。
&lac; :表示經文「缺」某字。
<skgloss>:表示梵語之容器,含有<gloss>,<term>。
<gloss>:表示梵語。
<term>:表示漢語詞。可包含一組以上的<app>標記定型式。

三、標記符號的應用

1. 經文的標記

  CBETA學術版所用的標記甚多,不能一一介紹,在這裡首先以唐玄奘所譯的《般若波羅蜜多心經》為例,簡略介紹給大家認識。

【<div1>】(Text Division)
如前所言,<div1>在經文中把它看成是一部經文的完整內容。其屬性(type)可分為:「經」(<div1 type="juan">)和「品」(<div1 type="pin">)二種。以《般若波羅蜜多心經》為例,如下所示。

【XML電子檔】:

<lb n="0848c04"/><div1 type="jing"><title>般若波羅蜜多心經</title>
……
<lb n="0848c24"/><trailer><title>般若波羅蜜多心經</title></trailer>
</div1>

【<byline>】
  表示「作者」(<byline type="Author">)、「譯者」(<byline type="Translator">)等。

【XML電子檔】:

<lb n="0848c06"/>< byline type="Translator">唐三藏法師玄奘譯</byline>

【<p>】(Paragraph)

<p>(Paragraph)表示經文的一個「段落」。其屬性有「夾注」(<p type="inline">...</p>)、「卷末附文」(<p type="w">...</p>)、「咒」(<p type="dharani">...</p>)等。

【XML電子檔】:

<p><lb n="0848c07"/>觀自在菩薩。
……
<lb n="0848c23"/>菩提<app n="084807">
            <lem>僧莎</lem>
            <rdg wit="【三】">薩婆</rdg>
           </app>訶
</p>

【<pb>】(Page Break)與【<lb>】(Line Break)
  大正藏經文中,一頁有上中下三欄,每欄二十九行。在XML電子檔中,以<pb>表示「欄」。以<lb>表示每行的行首資訊。如下所示:

<pb ed="T" id="T08.0251.0848c" n="0848c"/>
<lb n="0848c01"/>   
<lb n="0848c02"/>
<lb n="0848c03"/>
<lb n="0848c04"/></div1><div1 type="jing">
<head><skgloss n="084801">
        <gloss>Praj&ntilde;&amacron;p&amacron;ramit&amacron;
           h&rdotblw;daya(A.小).</gloss>
        <term><title>般若波羅蜜多心經</title></term>
</skgloss>
</head>


2. 校勘條目 vs <app> (Apparatus Entry)

A. 【<app>】標記定型式

  除了認識 CBETA學術版經文中的標記外,有一組重要的標記定型式,大家非得知道不可,那就是標記校勘條目的<app>標記定型式。
  經文中或有一筆一條校勘條目、或有一筆二條校勘條目、或有一筆三條校勘條目,在XML電子檔中都以<app>標記定型式來呈現校勘條目的內容,如下所示:

【標記定型式】:

<app>
<lem>...</lem>
<rdg wit=【?】>...</rdg>
<app>

  其中<lem>...</lem>標記大正藏的經文字。<rdg wit=【?】>...</rdg>標記其他版本的校勘字。而<rdg wit=【?】>...</rdg>可能有多筆,視情況決定。【?】表示版本名,如宋元明三本表示【三】,聖本表示【聖】,宮本表示【宮】等。在標記<juan>、<byline>、<head>、<p>和<skgloss>等,可包含一組以上的<app>標記定型式。

B.【&lac;】(缺)

  在介紹<app>標記定型式之前,首先必須瞭解「&lac;」的用法。大正藏的校勘條目有時以「+」表示其他版本多了某字,以「-」表示大正藏少了某字,在XML電子檔往往以「&lac;」適時的表示該筆校勘條目的內容,「&lac;」即「缺」意。

C.【<app>】標記定型式的應用

  大正藏的校勘略符,有提到「作(various reading)」、「無(omit;diest)」、「有(add)」、「下同與*」和「漢梵語詞」等校勘資訊,以下就《般若波羅蜜多心經》為例,一一介紹。

【作(various reading)】
  經文中,一筆的校勘條目,就是甲字作乙字。如《般若波羅蜜多心經》的 T08.251.848c的「菩提[07]僧莎訶」的「僧莎」二字,宋元明三本作「薩婆」二字。

【大正藏】:
經文      菩提[07]僧莎訶
校勘條目    [07]僧莎=薩婆【三】

【XML電子檔】:
    <lb n="0848c23"/>菩提<app n="084807">
                <lem>僧莎</lem>
                <rdg wit="【三】">薩婆</rdg>
               </app>

【有(add)】
  《般若波羅蜜多心經》的T08.251.848c的「[02]唐三藏」,大正藏有「唐」字,但是宋本少了「唐」字。在XML電子檔中,以<lem>標記「唐」字,同時將<rdg wit="【宋】">&lac;</rdg>寫成「&lac;」,「&lac;」即「缺」意,表示在宋本《般若波羅蜜多心經》少了「唐」字。

【大正藏】:
經文(譯者)  [02]唐三藏法師玄[03]奘譯
校勘條目    [02]〔唐〕-【宋】
        [03]奘+(奉詔)【三】

【XML電子檔】:
    <lb n="0848c06"/>
      <byline>
        <app n="084802">
          <lem>唐</lem>
          <rdg wit="【宋】">&lac;</rdg>
        </app>三藏法師玄奘<app n="084803">
                   <lem>&lac;</lem>
                   <rdg wit="【三】">奉詔</rdg>
                 </app>譯
       </byline>

【無(omit;diest)】
  同例如上所示,經文中的「玄[03]奘譯」三字,大正藏少了「奉詔」二字,宋元明三本作「玄奘奉詔譯」五字。在XML電子檔中,以<lem>標記「&lac;」,「&lac;」即「缺」意,在<rdg wit="【三】">奉詔</rdg>標記宋元明三本的《般若波羅蜜多心經》多了「奉詔」二字。

【下同與*】
  大正藏經文中經常可以在經文中或校勘條目中看到「*」的校勘符號或「下同」二字的注明。在大正藏略符中,「*」的校勘符號表示「下同」(so below, so above)的意思。經文或校勘條目中有時用「*」,有時用「下同」二字。
  在XML電子檔中,以<app>標記第一筆的校勘字,如果第二筆的校勘字出現「*」,就得重覆第一筆的校勘條目之資訊。如《般若波羅蜜多心經》「揭[04]帝揭[05] 帝」的「帝」字,宋元明三本作「諦」字,該「帝」字在下一句「般羅揭*帝」出現,該「帝」字卻以「*」表示,此時以校勘代碼「n="y084801"」表示這「*」在這一頁(T08.251.848c)是第一個「*」的校勘碼,並重複校勘碼[05]的校勘資訊。

【大正藏】:

經文     揭[04]帝揭[05]帝  般羅揭*帝……
校勘條目  [05]帝=諦【三】*

【XML電子檔】:

<p type="dharani"><lb n="0848c22"/>……揭帝揭
  <app n="084805">
    <lem>帝</lem>
    <rdg wit="【三】*">諦</rdg>
  </app>……

……羅揭<app n="y084801">
      <lem>帝</lem>
      <rdg wit="【三】">諦</rdg>
    </app>……

【中梵語詞】
如果遇到有中梵語詞對照的校勘條目,其標記有一定的形式,如上所述<skgloss>表示梵語之容器,含有<gloss>,<term>。<gloss>置放梵語詞。<term> 置放漢語詞,在<term>中可包含一組以上的<app>標記定型式。

【標記定型式】:
<skgloss n="?">
  <gloss>(梵語)</gloss>
    <term>
        <app n="?">
             <lem>...</lem>
            <rdg wit="【?】">...</rdg>
         </app>
    </term>
</skgloss>


【大正藏】:
經文      [01]般若波羅蜜多心經
校勘條目    [01] Praj&ntilde;&amacron;p&amacron;ramit&amacron;
           h&rdotblw;daya(A.小)

【XML電子檔】:
<lb n="0848c04"/></div1><div1 type="jing">
<head>
<skgloss n="084801">
<gloss>
Praj&ntilde;&amacron;p&amacron;ramit&amacron; &rdotblw;daya(A.小).
</gloss>
<term>
<title>般若波羅蜜多心經</title>
</term>
</skgloss>


3.《般若波羅蜜多心經》學術版XML電子檔範例

  綜合上述的簡介,《般若波羅蜜多心經》學術版XML電子檔範例如下所示:

【大正藏】:
經文    [01]般若波羅蜜多心經
        [02]唐三藏法師玄[03]奘譯
  觀自在菩薩。行深般若波羅蜜多時。照見五
  蘊皆空。度一切苦厄。舍利子。色不異空。空不
  異色。色即是空。空即是色。受想行識亦復如
  是。舍利子。是諸法空相。不生不滅。不垢不淨
  不增不減。是故空中。無色。無受想行識。無眼
  耳鼻舌身意。無色聲香味觸法。無眼界。乃至
  無意識界。無無明。亦無無明盡。乃至無老死。
  亦無老死盡。無苦集滅道。無智亦無得。以無
  所得故。菩提薩埵。依般若波羅蜜多故。心無
  罣礙。無罣礙故。無有恐怖。遠離顛倒夢想。究
  竟涅槃。三世諸佛。依般若波羅蜜多故。得阿
  耨多羅三藐三菩提。故知般若波羅蜜多。是
  大神咒。是大明咒是無上咒。是無等等咒。能
  除一切苦。真實不虛故。說般若波羅蜜多咒
  即說咒曰
  揭[04]帝揭[05]帝 [06]般羅揭*帝 *般羅僧揭*帝
  菩提[07]僧莎訶
  般若波羅蜜多心經

校勘條目  [01] Praj&ntilde;&amacron;p&amacron;ramit&amacron;
         h&rdotblw;daya(A.小)
      [02]〔唐〕-【宋】
      [03]奘+(奉詔)【三】
      [04]咒文Gate gate p&amacron;ragate p&amacron;rasa&mdotblw;gate
                    bodhi Sv&amacron;h&amacron;.
      [05]帝=諦【三】*
      [06]般=波【三】*
      [07]僧莎=薩婆【三】

【XML電子檔】:

<?xml version="1.0" encoding="big5" ?>
<!DOCTYPE tei.2 SYSTEM "../dtd/cbetaxml.dtd"
[<!ENTITY % ENTY  SYSTEM "T08n0251.ent" >
%ENTY;
<!ENTITY % CBENT  SYSTEM "../dtd/CBETA.ENT" >
%CBENT;
]>
<tei.2>
<teiheader>
  <filedesc>
    <titlestmt>
      <title>
          Taisho Tripitaka, Electronic version, No. 251 般若波羅蜜多心經
      </title>
<respstmt>
  <resp>Electronic Version by</resp>
  <name>CBETA</name>
</respstmt>
</titlestmt>
<editionstmt>
  <edition>Version 1.0 (Big5)</edition>
</editionstmt>
<publicationstmt>
  <distributor>
    <name>中華電子佛典協會 (CBETA)</name>
    <address>
      <addrline>service@cbeta.org</addrline>
    </address>
  </distributor>
  <availability>
    <p>
       Available for non-commercial use when distributed with
       this header intact.
    </p>
  </availability>
  <date>Dec 1998</date>
  </publicationstmt>
  <sourcedesc>
    <bibl>
       Taisho Tripitaka Vol. 08, Nr. 251
    </bibl>
  </sourcedesc>
</filedesc>
  <encodingdesc>
    <projectdesc>
       <p lang="zh" type="ly">
        This is a very preliminary format-conversion.
       </p>
    </projectdesc>
  </encodingdesc>
  <revisiondesc>
  <change>
    <date>19990721/18:35:54</date>
    <respstmt><name>CW</name><resp>ed.</resp></respstmt>
    <item>converted to XML with CBXML.BAT (99/6/30)</item>
  </change>
</revisiondesc>
</teiheader>
<text>
<body>
……
<div1>
……
<pb ed="T" id="T08.0251.0848c" n="0848c"/>
<lb n="0848c01"/>
<lb n="0848c02"/>
<lb n="0848c03"/>
<lb n="0848c04"/>
</div1>
<div1 type="jing">
<head>
  <skgloss n="084801">
    <gloss>
      Praj&ntilde;&amacron;p&amacron;ramit&amacron;
      h&rdotblw;daya(A.小).
    </gloss>
    <term><title>般若波羅蜜多心經</title></term>
  </skgloss>
</head>
<lb n="0848c05"/>
<lb n="0848c06"/>
  <byline type="Translator">
    <app n="084802">
      <lem>唐</lem>
      <rdg wit="【宋】">&lac;</rdg>
    </app>
三藏法師玄奘
<app n="084803">
<lem>&lac;</lem>
<rdg wit="【三】">奉詔</rdg>
</app>
譯
</byline>
<p><lb n="0848c07"/>觀自在菩薩。行深般若波羅蜜多時。照見五
<lb n="0848c08"/>蘊皆空。度一切苦厄。舍利子。色不異空。空不
<lb n="0848c09"/>異色。色即是空。空即是色。受想行識亦復如
<lb n="0848c10"/>是。舍利子。是諸法空相。不生不滅。不垢不淨
<lb n="0848c11"/>不增不減。是故空中。無色。無受想行識。無眼
<lb n="0848c12"/>耳鼻舌身意。無色聲香味觸法。無眼界。乃至
<lb n="0848c13"/>無意識界。無無明。亦無無明盡。乃至無老死。
<lb n="0848c14"/>亦無老死盡。無苦集滅道。無智亦無得。以無
<lb n="0848c15"/>所得故。菩提薩埵。依般若波羅蜜多故。心無
<lb n="0848c16"/>罣礙。無罣礙故。無有恐怖。遠離顛倒夢想。究
<lb n="0848c17"/>竟涅槃。三世諸佛。依般若波羅蜜多故。得阿
<lb n="0848c18"/>耨多羅三藐三菩提。故知般若波羅蜜多。是
<lb n="0848c19"/>大神咒。是大明咒是無上咒。是無等等咒。能
<lb n="0848c20"/>除一切苦。真實不虛故。說般若波羅蜜多咒
<lb n="0848c21"/>即說咒曰</p>
<p type="dharani"><lb n="0848c22"/>
<skgloss n="084804">
  <gloss>
    Gate gate p&amacron;ragate p&amacron;rasa&mdotblw;gate bodhi
    Sv&amacron;h&amacron;.
  </gloss>
<term >
揭帝揭
<app n="084805">
  <lem>帝</lem>
  <rdg wit="【三】*">諦</rdg>
</app>
<app n="084806">
  <lem>般</lem>
  <rdg wit="【三】*">波</rdg>
</app>
羅揭
<app n="y084801">
  <lem>帝</lem>
  <rdg wit="【三】">諦</rdg>
</app>
<app n="y084802">
  <lem>般</lem>
  <rdg wit="【三】">波</rdg>
</app>
羅僧揭
<app n="y084803">
  <lem>帝</lem>
  <rdg wit="【三】">諦</rdg>
</app>
<lb n="0848c23"/>
菩提
<app n="084807">
  <lem>僧莎</lem>
  <rdg wit="【三】">薩婆</rdg>
</app>
訶
</term>
</skgloss>
</p><lb n="0848c24"/>
<trailer>
  <title>般若波羅蜜多心經</title>
</trailer>
</div1>
</body>
</text>
</tei.2>

四、結語

如上所示,大正藏的書面資料在佛典電子化的過程中,經過標記以後,保留 了原有經名、年代、作者、譯者、校勘等資訊,在文獻保存中,實有其正面的 價值所在。

附件:學術版XML之DTD的設定

<!-CBETA project DTD, generated with FRED 31.12.98 (CW) converted to XML form 2.1.99 (CW) <!ELEMENT tei.2 (teiheader, text )> <!ELEMENT teiheader (filedesc, encodingdesc, revisiondesc )> <!ELEMENT text (body)> <!ELEMENT filedesc (titlestmt, editionstmt?, publicationstmt, sourcedesc )> <!ELEMENT encodingdesc (projectdesc)> <!ELEMENT revisiondesc (change)+> <!ELEMENT change (date, respstmt, item)> <!ELEMENT titlestmt (title, respstmt)> <!ELEMENT title (#PCDATA | gaiji)*> <!ELEMENT respstmt (resp | name)*> <!ELEMENT resp (#PCDATA)> <!ELEMENT name (#PCDATA)> <!ELEMENT editionstmt (edition)> <!ELEMENT publicationstmt (distributor, availability, date )> <!ELEMENT sourcedesc (bibl, p?)> <!ELEMENT edition (#PCDATA)> <!ELEMENT distributor ( name, address )> <!ELEMENT availability (p)> <!ELEMENT date (#PCDATA)> <!ELEMENT address (addrline)> <!ELEMENT addrline (#PCDATA)> <!ELEMENT p (#PCDATA | gaiji | lb |pb | skgloss | note | corr | fan | app | anchor | span)*> <!ATTLIST p n CDATA #IMPLIED lang CDATA #IMPLIED type CDATA #IMPLIED rend CDATA #IMPLIED > <!ELEMENT bibl (#PCDATA)> <!ELEMENT projectdesc (p+)> <!ELEMENT body ((gaiji | lb |pb | head | juan | byline | div1)*)> <!ELEMENT lb EMPTY> <!ATTLIST lb n CDATA #IMPLIED > <!ELEMENT head (#PCDATA | app | skgloss | corr | gaiji | lb | pb | note | anchor)*> <!ATTLIST head type CDATA #IMPLIED > <!ELEMENT byline ( #PCDATA | gaiji | lb |pb | app | corr | note)*> <!ATTLIST byline type CDATA #IMPLIED > <!ELEMENT div1 (head?, (div2 | (p | lg | juan | gaiji | lb |pb | byline | trailer | app | list | anchor)*)*) > <!ATTLIST div1 type CDATA #IMPLIED n CDATA #IMPLIED> <!ELEMENT div2 (head?, (p | lg | juan | gaiji | lb |pb | byline | trailer | app)*) > <!ATTLIST div2 type CDATA #IMPLIED n CDATA #IMPLIED > <!ELEMENT term ( #PCDATA | gaiji | lb |app)*> <!ELEMENT lg ( ( gaiji | lb |l | pb | app | anchor)* )> <!ATTLIST lg type CDATA #IMPLIED > <!ELEMENT pb EMPTY> <!ATTLIST pb ed CDATA #IMPLIED id CDATA #IMPLIED n CDATA #IMPLIED > <!ELEMENT note (#PCDATA | app | p | corr | gaiji | lb |pb | lg)*> <!ATTLIST note n CDATA #IMPLIED type CDATA #IMPLIED > <!ELEMENT l (#PCDATA | gaiji | skgloss | corr | app | note)*> <!ELEMENT trailer (#PCDATA | gaiji | lb |corr | app)*> <!ELEMENT app (lem?, rdg+ )> <!ATTLIST app wit CDATA #IMPLIED ana IDREFS #IMPLIED corresp IDREFS #IMPLIED from IDREF #IMPLIED to IDREF #IMPLIED yuan CDATA #IMPLIED next IDREF #IMPLIED prev IDREF #IMPLIED id ID #IMPLIED n CDATA #IMPLIED lang IDREF #IMPLIED rend CDATA #IMPLIED TEIform CDATA "app" > <!ELEMENT lem (#PCDATA | app | gaiji | lb |byline | note | l | pb | corr | lg | fan | head | p | juan)*> <!ATTLIST lem wit CDATA #IMPLIED ana IDREFS #IMPLIED corresp IDREFS #IMPLIED from IDREF #IMPLIED to IDREF #IMPLIED next IDREF #IMPLIED prev IDREF #IMPLIED id ID #IMPLIED n CDATA #IMPLIED lang IDREF #IMPLIED rend CDATA #IMPLIED TEIform CDATA "lem" > <!ELEMENT rdg (#PCDATA | note | juan | head | byline | gaiji)*> <!ATTLIST rdg wit CDATA #IMPLIED ana IDREFS #IMPLIED corresp IDREFS #IMPLIED from IDREF #IMPLIED to IDREF #IMPLIED next IDREF #IMPLIED prev IDREF #IMPLIED id ID #IMPLIED n CDATA #IMPLIED lang IDREF #IMPLIED rend CDATA #IMPLIED TEIform CDATA "rdg" > <!ELEMENT anchor EMPTY> <!ATTLIST anchor id ID #IMPLIED > <!ELEMENT list (head?, (item | gaiji | lb |pb)*)> <!ELEMENT item (#PCDATA | gaiji | lb |app | pb)*> <!ELEMENT span (#PCDATA | gaiji | lb |app | pb)*> <!ATTLIST span id ID #IMPLIED n CDATA #IMPLIED rend CDATA #IMPLIED > <!-CBETA specific elements <!ELEMENT jhead (#PCDATA | app | skgloss | corr | gaiji | lb | pb | note | anchor)*> <!ATTLIST jhead type CDATA #IMPLIED > <!ELEMENT juan ( #PCDATA | skgloss | app | corr | gaiji | lb | pb | note | jhead | head | byline)*> <!ATTLIST juan fun CDATA #IMPLIED n CDATA #IMPLIED > <!ELEMENT fan (zi, yin)> <!ELEMENT zi (#PCDATA)> <!ELEMENT yin (#PCDATA | app)*> <!-GLOSS is from the TEI set, but the attribute alt has been added (CW, 18.11.98) <!ELEMENT skgloss (gloss, term )> <!ATTLIST skgloss n CDATA #IMPLIED > <!ELEMENT gloss (#PCDATA | corr | skgloss)*> <!ATTLIST gloss n CDATA #IMPLIED alt CDATA #IMPLIED > <!-CORR is from the TEI set, but the attributes cf1, cf2 has been added (CW, 1.7.98) <!ELEMENT corr (#PCDATA)> <!ATTLIST corr cf1 CDATA #IMPLIED cf2 CDATA #IMPLIED resp CDATA #IMPLIED sic CDATA #IMPLIED > <!ELEMENT gaiji EMPTY> <!ATTLIST gaiji id ID #IMPLIED mojikyo CDATA #IMPLIED mofont CDATA #IMPLIED mochar CDATA #IMPLIED cb CDATA #IMPLIED des CDATA #IMPLIED nor CDATA #IMPLIED >