<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5//EN" "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_plain.dtd">
<document xmlns="http://cnx.rice.edu/cnxml" xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" id="m10159">
  
  <name>Combining XML Languages (日本語 - Japanese)</name>

  <metadata>
  <md:version>2.14</md:version>
  <md:created>2005/08/24 15:08:34.203 GMT-5</md:created>
  <md:revised>2005/08/24 15:09:19.244 GMT-5</md:revised>
  <md:authorlist>
      <md:author id="selc">
      <md:firstname>Sarah</md:firstname>
      
      <md:surname>Coppin</md:surname>
      <md:email>coppin@alumni.rice.edu</md:email>
    </md:author>
      <md:author id="brentmh">
      <md:firstname>Brent</md:firstname>
      <md:othername>Michael</md:othername>
      <md:surname>Hendricks</md:surname>
      <md:email>brentmh@rice.edu</md:email>
    </md:author>
      <md:author id="takaryo">
      <md:firstname>Hironori</md:firstname>
      
      <md:surname>Takaryo</md:surname>
      <md:email>s043105@ishikawa-nct.ac.jp</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="takaryo">
      <md:firstname>Hironori</md:firstname>
      
      <md:surname>Takaryo</md:surname>
      <md:email>s043105@ishikawa-nct.ac.jp</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist>
    <md:keyword>DTD</md:keyword>
    <md:keyword>namespace</md:keyword>
    <md:keyword>tutorial</md:keyword>
    <md:keyword>XML</md:keyword>
  </md:keywordlist>

  <md:abstract>This module explains how to use XML namespaces and DTDs to combine multiple XML languages in the same document.</md:abstract>
</metadata>
  <content>
    <para id="namesp1">　<link src="http://www.w3.org/XML">XML</link>では、カスタムマークアップ言語でドキュメントを作成することができます。しかし、同じドキュメントで、複数の言語からのマークアップを結合したい場合、どうなるでしょうか？1つ以上のタグが、異なった意味で両方の言語に存在していたらどうなるでしょうか？例えば、あなたはHTMLに<code><![CDATA[<table>]]></code>タグを入力できます。機能を失うことなく、これらのタグをどのように使用しますか？</para>

    <para id="namesp1.5">　解決策は、<term>ネームスペース</term>（W3Cのサイトをみてください。<link src="http://www.w3.org/TR/REC-xml-names/">Namespaces in
      XML</link>)）と呼ばれる拡張子をXMLで使用することです。ネームスペースは、特定のタグのセットとそれらの使用ルールに、Unique Global Identifier (URI)を関連付けます。特定のタグのためにネームスペースを宣言するには、ユニークな拡張子の値に<code>xmlns</code>属性を設定してください。
    </para>

    <para id="namesp2">　あなたはまたドキュメント内で使用するため、<term>ネームスペースの接頭語</term>を定義することができます。これをするには、<code>xmlns</code>属性の変更されたバージョンを使ってください。例えば、ネームスペースを示す<code>http://somewhere.org/foo</code>の、<code>foo</code>という接頭語に関連付けるため、<code>xmlns:foo="http://somewhere.org/foo"</code>のような属性を使うでしょう。そのときあなたは、適切な接頭語を加えることによって、そのネームスペースからどのタグが来るかを示すことができます。したがって、fooのネームスペースおける<code>bar</code>タグは<code>&lt;foo:bar&gt;</code>や<code>&lt;/foo:bar&gt;</code>のように書かれるでしょう。
      
    </para>
<para id="namesp3">　ディフォルトのネームスペースを使用すると、そのタグのどんな子も、同じネームスペースから来たと思われるでしょう。タグのすべての子に対してネームスペースが定義できます。特に<term>ルートノード</term>で使用するときに役に立ちます。</para>
    <example id="namesp">
      <para id="namesp4">　CNXMLのバージョン0.5のためのネームスペース識別子は<code>http://cnx.rice.edu/cnxml</code>です。したがって、ドキュメントのディフォルトのネームスペースとして、CNXMLに申告するためには、<code>ドキュメント</code>タグに属性を追加するでしょう。よって、MathMLのためのネームスペース識別子は<code>http://www.w3.org/1998/Math/MathML</code>、だからMathMLネームスペースと接頭語<code>m</code>を関連付けるには、<code>ドキュメント</code>タグに<code>xmlns:m="http://www.w3.org/1998/Math/MathML"</code>という属性を追加してください。

      </para>
    </example>
   <para id="p1">　ネームスペースでは、同時に複数の言語でドキュメントを書くことができます。しかしながら、これらのドキュメントが有効であるように、それらはある言語のタグが、別の言語のタグの中に存在することを可能にする<term>Document Type Definition</term> (DTD)を持たなくてはなりません。よって、CNXMLドキュメントにMathMLを含めたいなら、MathMLがCNXMLタグ内に存在できるDTDが必要です。DTDがあれば、DOCTYPEを宣言できます。
    </para>
    <example id="cmcombo">
      <para id="pcnxp">　CNXMLのDOCTYPE宣言は以下の通りです。
      </para>
      <code type="block">
    <![CDATA[<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5//EN" 
              "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_plain.dtd">]]>
      </code>
      <para id="pcnxmath">　CNXMLとMathMLのDOCTYPE宣言は以下の通りです。
      </para>
      <code type="block">
    <![CDATA[<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus MathML//EN" 
              "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_mathml.dtd">]]>
      </code>
      <para id="pcnxqml">　CNXMLとQMLのDOCTYPE宣言は以下の通りです。
      </para>
      <code type="block">
    <![CDATA[<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus QML//EN" 
              "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_qml.dtd">]]>
      </code>
      <para id="pcnxqmlmath">　CNXML、QML、およびMathMLのDOCTYPE宣言は以下の通りです。
      </para>
      <code type="block">
    <![CDATA[<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus
              MathML plus QML//EN" 
              "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_mathml_qml.dtd">]]>
      </code>
    </example>
    <para id="p2">　CNXMLとMathMLを含む簡単なドキュメントです。CNXMLのネームスペースがディフォルトで、MathMLのネームスペースが接頭語<code>m</code>を持っていることに注意してください。
    </para>
<code type="block"><![CDATA[<?xml version="1.0" standalone="no"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus MathML//EN" 
              "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_mathml.dtd">

      <document xmlns="http://cnx.rice.edu/cnxml"
              xmlns:m="http://www.w3.org/1998/Math/MathML"
              . . .>

       <metadata xmlns:md="http://cnx.rice.edu/mdml/0.4">
  <md:version>2.14</md:version>
  <md:created>2005/08/24 15:08:34.203 GMT-5</md:created>
  <md:revised>2005/08/24 15:09:19.244 GMT-5</md:revised>
  <md:authorlist>
      <md:author id="selc">
      <md:firstname>Sarah</md:firstname>
      
      <md:surname>Coppin</md:surname>
      <md:email>coppin@alumni.rice.edu</md:email>
    </md:author>
      <md:author id="brentmh">
      <md:firstname>Brent</md:firstname>
      <md:othername>Michael</md:othername>
      <md:surname>Hendricks</md:surname>
      <md:email>brentmh@rice.edu</md:email>
    </md:author>
      <md:author id="takaryo">
      <md:firstname>Hironori</md:firstname>
      
      <md:surname>Takaryo</md:surname>
      <md:email>s043105@ishikawa-nct.ac.jp</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="takaryo">
      <md:firstname>Hironori</md:firstname>
      
      <md:surname>Takaryo</md:surname>
      <md:email>s043105@ishikawa-nct.ac.jp</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist>
    <md:keyword>DTD</md:keyword>
    <md:keyword>namespace</md:keyword>
    <md:keyword>tutorial</md:keyword>
    <md:keyword>XML</md:keyword>
  </md:keywordlist>

  <md:abstract>This module explains how to use XML namespaces and DTDs to combine multiple XML languages in the same document.</md:abstract>
</metadata>

       <content>
        <para id='p1'>
         This math says "3y".
         <m:math display='inline'>
          <m:apply>
           <m:times/>
           <m:cn>3</m:cn>
           <m:ci>y</m:ci>
          </m:apply>
         </m:math>
        </para>
       </content>

      </document>]]></code>
    
    <para id="last">　よって、ネームスペースの使用を結合することと、慎重に書かれたDTDによって、あなたは複数のXML言語を使用するドキュメントを、同時に書くことができます。</para>

  </content>
</document>
