<?xml version="1.0" encoding="EUC-JP"?>

<!-- $Id: site.dtd,v 1.1 2004/01/01 12:41:57 matsu Exp $ -->

<!--
これはサイト自動生成ツールSiteGeneratorが参照するXML文書site.xmlのDTDである.
site.xmlではサイトの構成を記述する.
-->

<!-- root -->
<!ELEMENT site (base,contents)>
<!-- サイトの基本情報 
必須属性urlはサイトのベースURLである.
必須属性outputdirはXML文書から生成されるHTMLファイルの格納場所である.
必須属性inputdirはHTMLファイル生成のもとになるXML文書である.
-->
  <!ELEMENT base (title,description,webMaster,navigator?,robots?)>
    <!ATTLIST base url CDATA #REQUIRED>
    <!ATTLIST base outputdir CDATA #REQUIRED>
    <!ATTLIST base inputdir CDATA #REQUIRED>
    <!-- サイトのタイトル -->
    <!ELEMENT title (#PCDATA)>
    <!-- サイトについての記述 -->
    <!ELEMENT description (#PCDATA)>
    <!-- サイトのWEBMaster情報 -->
    <!ELEMENT webMaster (name,mail)>
	<!-- WEBMasterのメアド -->
	<!ELEMENT mail (#PCDATA)>
    <!-- ナビゲータ情報 -->
    <!ELEMENT navigator EMPTY>
        <!-- ナビゲータの記述位置 "boforeMain" or "afterMain".
             beforeMain メイン部(頁に異なる部分)の前に記述(デフォルト).
             afterMain メイン部の後に記述.
        -->
        <!ATTLIST navigator position CDATA "beforeMain">

<!-- サイトのコンテンツ
コンテンツはtop,diary,featureのいずれかのタイプに分かれ,
要素contentsの子要素として表現される.
要素contentsの子孫のノードはいずれも必須属性idとdirを持つ.
idはHTMLファイル生成時にツールによって参照される.
idは一意でなくてはならず,ツールによって以下のスタイルで記述する.

親のid.文字列

多くの場合上の「文字列」はdirと同じ値で問題ない.

dirはXML文書の格納場所,HTML文書の出力場所,サイトにおけるPATHに使用される.
dirは親のdirが表すディレクトリの子ディレクトリとなる.
-->
  <!ELEMENT contents (top|diary|feature|siteImport)*>
    <!-- トップページ -->
    <!ELEMENT top (name,robots?)>
      <!ATTLIST top id ID #REQUIRED>
      <!ATTLIST top dir CDATA #REQUIRED>
    <!-- 日記コーナー -->
    <!ELEMENT diary (name,robots?)>
      <!ATTLIST diary id ID #REQUIRED>
      <!ATTLIST diary dir CDATA #REQUIRED>
    <!-- 静的ページ等SiteGeneratorの管理下にないコンテンツ用 -->
    <!ELEMENT siteImport (name,robots?)>
    <!ATTLIST siteImport id ID #REQUIRED>
    <!ATTLIST siteImport dir CDATA #REQUIRED>
    <!-- 特集コーナー -->
    <!ELEMENT feature (name,robots?,category+)>
      <!ATTLIST feature id ID #REQUIRED>
      <!ATTLIST feature dir CDATA #REQUIRED>
      <!-- カテゴリ -->
      <!ELEMENT category (name,summery,subCategory+)>
            <!ATTLIST category id ID #REQUIRED>
	    <!ATTLIST category dir CDATA #REQUIRED>
	    <!-- サブカテゴリ -->
	    <!ELEMENT subCategory (name,summery)>
	    	    <!ATTLIST subCategory id ID #REQUIRED>
		    <!ATTLIST subCategory dir CDATA #REQUIRED>

<!-- コンテンツの名前 -->
<!ELEMENT name (#PCDATA)>
<!-- コンテンツの概要 -->
<!ELEMENT summery (#PCDATA)>

<!-- METAタグの記述指定.
要素BASEの子要素で記述した内容が全頁に適用される.
ただし,要素contentsの孫要素で属性単位で上書きすることができる.
その有効範囲は,その要素contentsの孫要素内である.
必ずしも全ての属性を指定する必要はない.
要素BASEの子要素,要素contentsの孫要素いずれでも
指定されなかった属性は,値noで指定された場合と同じ結果となる.
siteImportの子要素でも指定可能だが,無意味である.
-->
<!ELEMENT robots EMPTY>
    <!-- noindex,indexのスイッチ."yes" or "no"
         yes noindex
         no index
    -->
    <!ATTLIST robots noIndex CDATA #IMPLIED>
    <!-- nofollow,followのスイッチ."yes" or "no"
         yes nofollow
         no follow
    -->
    <!ATTLIST robots noFollow CDATA #IMPLIED>
    <!-- noarchive,archiveのスイッチ."yes" or "no"
         yes noarchive
         no archive
    -->
    <!ATTLIST robots noArchive CDATA #IMPLIED>

