OSDN Git Service

110419版仮
authorOlyutorskii <olyutorskii@users.osdn.me>
Mon, 18 Apr 2011 18:51:05 +0000 (03:51 +0900)
committerOlyutorskii <olyutorskii@users.osdn.me>
Mon, 18 Apr 2011 18:51:05 +0000 (03:51 +0900)
dtd/bbsArchive-110419.dtd [new file with mode: 0644]
xsd/bbsArchive-110419.xsd [new file with mode: 0644]

diff --git a/dtd/bbsArchive-110419.dtd b/dtd/bbsArchive-110419.dtd
new file mode 100644 (file)
index 0000000..8c81e8f
--- /dev/null
@@ -0,0 +1,337 @@
+<!--
+
+人狼BBS 共通アーカイブ基盤用 DTD定義
+
+by olyutorskii [ http://sourceforge.jp/users/olyutorskii/ ]
+License : The MIT License
+※ カタログ化はご自由に
+
+Copyright(c) 2009 olyutorskii
+
+-->
+
+<!ENTITY % announceElems "
+  startEntry
+| onStage
+| startMirror
+| openRole
+| murdered
+| startAssault
+| survivor
+| counting
+| suddenDeath
+| noMurder
+| winVillage
+| winWolf
+| winHamster
+| playerList
+| panic
+| execution
+| vanish
+| checkout
+| shortMember
+" >
+
+<!ENTITY % orderElems "
+  askEntry
+| askCommit
+| noComment
+| stayEpilogue
+| gameOver
+" >
+
+<!ENTITY % extraElems "
+  judge
+| guard
+| counting2
+| assault
+" >
+
+<!ENTITY % systemEvent " %announceElems; | %orderElems; | %extraElems; " >
+
+<!ENTITY % EventFamily " announce | order | extra " >
+<!ENTITY % announceAttrs "eventFamily (%EventFamily;) #FIXED 'announce'" >
+<!ENTITY % orderAttrs    "eventFamily (%EventFamily;) #FIXED 'order'" >
+<!ENTITY % extraAttrs    "eventFamily (%EventFamily;) #FIXED 'extra'" >
+
+<!ENTITY % VillageState " prologue | progress | epilogue | gameover " >
+<!ENTITY % DisclosureType " hot | uncomplete | complete " >
+<!ENTITY % PeriodType " prologue | progress | epilogue " >
+<!ENTITY % Team " village | wolf | hamster " >
+<!ENTITY % TalkType " public | wolf | private| grave " >
+<!ENTITY % Role "
+  innocent
+| wolf
+| seer
+| shaman
+| madman
+| hunter
+| frater
+| hamster
+" >
+
+
+<!-- #################################################################### -->
+
+
+<!ELEMENT village (avatarList, period*) >
+<!ATTLIST village
+    xmlns CDATA #REQUIRED
+    xmlns:xsi CDATA #REQUIRED
+    xsi:schemaLocation CDATA #REQUIRED
+    xml:lang CDATA "ja-JP"
+    xml:base CDATA #REQUIRED
+    xml:space (default|preserve) "preserve"
+    fullName CDATA #REQUIRED
+    vid CDATA #REQUIRED
+    commitTime CDATA #IMPLIED
+    state (%VillageState;) #REQUIRED
+    disclosure (%DisclosureType;) "complete"
+    isValid ( true | false | 1 | 0 ) "true"
+    landName CDATA #REQUIRED
+    formalName CDATA #REQUIRED
+    landId CDATA #REQUIRED
+    landPrefix CDATA #REQUIRED
+    locale CDATA "ja-JP"
+    origencoding CDATA "Shift_JIS"
+    timezone CDATA "GMT+09:00"
+    graveIconURI CDATA #REQUIRED
+    generator CDATA #IMPLIED
+>
+
+<!ELEMENT avatarList (avatar*) >
+
+<!ELEMENT avatar EMPTY >
+<!ATTLIST avatar
+    avatarId CDATA #REQUIRED
+    fullName CDATA #REQUIRED
+    shortName CDATA #REQUIRED
+    faceIconURI CDATA #IMPLIED
+>
+
+<!ELEMENT period ( talk | %systemEvent; )* >
+<!ATTLIST period
+    type (%PeriodType;) #REQUIRED
+    day CDATA #REQUIRED
+    disclosure (%DisclosureType;) "complete"
+    nextCommitDay CDATA #REQUIRED
+    commitTime CDATA #REQUIRED
+    sourceURI CDATA #REQUIRED
+    loadedTime CDATA #IMPLIED
+    loadedBy CDATA #IMPLIED
+>
+
+<!ELEMENT talk (li)* >
+<!ATTLIST talk
+    type (%TalkType;) #REQUIRED
+    avatarId CDATA #REQUIRED
+    xname CDATA #REQUIRED
+    time CDATA #REQUIRED
+    faceIconURI CDATA #IMPLIED
+>
+
+<!ELEMENT li (#PCDATA|rawdata)* >
+<!ATTLIST li xml:space (default|preserve) "preserve" >
+
+<!ELEMENT rawdata (#PCDATA) >
+<!ATTLIST rawdata
+    encoding CDATA #REQUIRED
+    hexBin   CDATA #REQUIRED
+>
+
+<!ELEMENT avatarRef EMPTY >
+<!ATTLIST avatarRef
+    avatarId CDATA #REQUIRED
+>
+
+<!ELEMENT startEntry (li)* >
+<!ATTLIST startEntry
+    %announceAttrs;
+>
+
+<!ELEMENT onStage (li)* >
+<!ATTLIST onStage
+    %announceAttrs;
+    entryNo CDATA #REQUIRED
+    avatarId CDATA #REQUIRED
+>
+
+<!ELEMENT startMirror (li)* >
+<!ATTLIST startMirror
+    %announceAttrs;
+>
+
+<!ELEMENT roleHeads EMPTY >
+<!ATTLIST roleHeads
+    role (%Role;) #REQUIRED
+    heads CDATA #REQUIRED
+>
+
+<!ELEMENT openRole (li*, roleHeads+) >
+<!ATTLIST openRole
+    %announceAttrs;
+>
+
+<!ELEMENT murdered (li*, avatarRef+) >
+<!ATTLIST murdered
+    %announceAttrs;
+>
+
+<!ELEMENT startAssault (li)* >
+<!ATTLIST startAssault
+    %announceAttrs;
+>
+
+<!ELEMENT survivor (li*, avatarRef+) >
+<!ATTLIST survivor
+    %announceAttrs;
+>
+
+<!ELEMENT vote EMPTY >
+<!ATTLIST vote
+    byWhom CDATA #REQUIRED
+    target CDATA #REQUIRED
+>
+
+<!ELEMENT counting (li*, vote+) >
+<!ATTLIST counting
+    %announceAttrs;
+    victim CDATA #IMPLIED
+>
+
+<!ELEMENT suddenDeath (li)* >
+<!ATTLIST suddenDeath
+    %announceAttrs;
+    avatarId CDATA #REQUIRED
+>
+
+<!ELEMENT noMurder (li)* >
+<!ATTLIST noMurder
+    %announceAttrs;
+>
+
+<!ELEMENT winVillage (li)* >
+<!ATTLIST winVillage
+    %announceAttrs;
+>
+
+<!ELEMENT winWolf (li)* >
+<!ATTLIST winWolf
+    %announceAttrs;
+>
+
+<!ELEMENT winHamster (li)* >
+<!ATTLIST winHamster
+    %announceAttrs;
+>
+
+<!ELEMENT playerInfo EMPTY >
+<!ATTLIST playerInfo
+    playerId CDATA #REQUIRED
+    avatarId CDATA #REQUIRED
+    survive ( true | false | 1 | 0 ) #REQUIRED
+    role (%Role;) #REQUIRED
+    uri CDATA #IMPLIED
+>
+
+<!ELEMENT playerList (li*, playerInfo+) >
+<!ATTLIST playerList
+    %announceAttrs;
+>
+
+<!ELEMENT panic (li)* >
+<!ATTLIST panic
+    %announceAttrs;
+>
+
+<!ELEMENT nominated EMPTY >
+<!ATTLIST nominated
+    avatarId CDATA #REQUIRED
+    count CDATA #REQUIRED
+>
+
+<!ELEMENT execution (li*, nominated+) >
+<!ATTLIST execution
+    %announceAttrs;
+    victim CDATA #IMPLIED
+>
+
+<!ELEMENT vanish (li)* >
+<!ATTLIST vanish
+    %announceAttrs;
+    avatarId CDATA #REQUIRED
+>
+
+<!ELEMENT checkout (li)* >
+<!ATTLIST checkout
+    %announceAttrs;
+    avatarId CDATA #REQUIRED
+>
+
+<!ELEMENT shortMember (li)* >
+<!ATTLIST shortMember
+    %announceAttrs;
+>
+
+<!ELEMENT askEntry (li)* >
+<!ATTLIST askEntry
+    %orderAttrs;
+    commitTime CDATA #REQUIRED
+    minMembers CDATA #REQUIRED
+    maxMembers CDATA #REQUIRED
+>
+
+<!ELEMENT askCommit (li)* >
+<!ATTLIST askCommit
+    %orderAttrs;
+    limitVote CDATA #REQUIRED
+    limitSpecial CDATA #REQUIRED
+>
+
+<!ELEMENT noComment (li*, avatarRef+) >
+<!ATTLIST noComment
+    %orderAttrs;
+>
+
+<!ELEMENT stayEpilogue (li)* >
+<!ATTLIST stayEpilogue
+    %orderAttrs;
+    winner (%Team;) #REQUIRED
+    limitTime CDATA #REQUIRED
+>
+
+<!ELEMENT gameOver (li)* >
+<!ATTLIST gameOver
+    %orderAttrs;
+>
+
+<!ELEMENT judge (li)* >
+<!ATTLIST judge
+    %extraAttrs;
+    byWhom CDATA #REQUIRED
+    target CDATA #REQUIRED
+>
+
+<!ELEMENT guard (li)* >
+<!ATTLIST guard
+    %extraAttrs;
+    byWhom CDATA #REQUIRED
+    target CDATA #REQUIRED
+>
+
+<!ELEMENT counting2 (li*, vote+) >
+<!ATTLIST counting2
+    %extraAttrs;
+>
+
+<!ELEMENT assault (li)* >
+<!ATTLIST assault
+    %extraAttrs;
+    byWhom CDATA #REQUIRED
+    target CDATA #REQUIRED
+    xname CDATA #REQUIRED
+    time CDATA #REQUIRED
+    faceIconURI CDATA #IMPLIED
+>
+
+<!-- EOF -->
diff --git a/xsd/bbsArchive-110419.xsd b/xsd/bbsArchive-110419.xsd
new file mode 100644 (file)
index 0000000..f531f5e
--- /dev/null
@@ -0,0 +1,1508 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<xsd:schema
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    xmlns:tns      ="http://jindolf.sourceforge.jp/xml/ns/501"
+    targetNamespace="http://jindolf.sourceforge.jp/xml/ns/501"
+    elementFormDefault="qualified"
+    xml:lang="ja-JP"
+    version="221"
+>
+
+    <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+
+人狼BBS 共通アーカイブ基盤用 スキーム定義
+
+by olyutorskii [ http://sourceforge.jp/users/olyutorskii/ ]
+License : The MIT License
+※ カタログ化はご自由に
+
+Copyright(c) 2009 olyutorskii
+
+############################################################################
+]]></xsd:documentation>
+    </xsd:annotation>
+
+
+    <xsd:import
+        namespace="http://www.w3.org/XML/1998/namespace"
+        schemaLocation="http://www.w3.org/2001/xml.xsd"
+    />
+
+
+    <xsd:include
+        schemaLocation="http://jindolf.sourceforge.jp/xml/xsd/coreType-090929.xsd"
+    />
+
+
+<!-- 各種複合型定義 ################################ -->
+
+    <!-- ================================================================ -->
+
+    <xsd:complexType name="TextLines">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+li要素を子に持つ複数行コンテンツ。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element ref="tns:li" minOccurs="0" maxOccurs="unbounded" />
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="li">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+会話文字列やシステムメッセージの各行を記述する混合モデル。
+元XHTMLデータ内会話<div>要素内のスペースとタブは
+すべて保存されなければならない。
+それ以外の余分な改行とスペースとタブを入れてはならない。
+生データ記述<rawdata>を途中に挿入可能。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType mixed="true">
+            <xsd:choice>
+                <xsd:element
+                    ref="tns:rawdata"
+                    minOccurs="0" maxOccurs="unbounded"
+                />
+            </xsd:choice>
+            <xsd:attribute
+                ref="xml:space"
+                use="optional"
+                default="preserve"
+            />
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:simpleType name="Onechar">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+1文字限定の文字列
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:length value="1" />
+        </xsd:restriction>
+    </xsd:simpleType>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="rawdata">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+・人狼BBS元データのエンコーディングが変だった。
+・もしくは文字集合制約を満たさなかった。(機種依存文字)
+などの事実を記述するための1byteもしくは2byteの生データの情報。
+類似するエンコーディングから代替文字1文字を推測して埋めておく事が可能。
+
+内容 : 代替文字列1文字。推測不可能な場合はU+FFFDなどが望ましい。
+encoding : 元データのエンコーディングおよび文字集合指定。
+           F国以前の人狼BBSでは事実上「Shift_JIS」固定。
+hexBin : 元データの16進データ文字列。2文字か4文字。例)「874a」「FF」
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:simpleContent>
+                <xsd:extension base="tns:Onechar">
+                    <xsd:attribute
+                        name="encoding"
+                        type="tns:EncodingDecl"
+                        use="required"
+                    />
+                    <xsd:attribute
+                        name="hexBin"
+                        type="xsd:hexBinary"
+                        use="required"
+                    />
+                </xsd:extension>
+            </xsd:simpleContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:complexType name="EventAnnounce">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+Announceイベント共通型。
+eventFamily属性値は"announce"固定。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="tns:TextLines">
+                <xsd:attribute
+                    name="eventFamily"
+                    type="tns:EventFamily"
+                    fixed="announce"
+                />
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+
+    <!-- ================================================================ -->
+
+    <xsd:complexType name="EventOrder">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+Orderイベント共通型。
+eventFamily属性値は"order"固定。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="tns:TextLines">
+                <xsd:attribute
+                    name="eventFamily"
+                    type="tns:EventFamily"
+                    fixed="order"
+                />
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+
+    <!-- ================================================================ -->
+
+    <xsd:complexType name="EventExtra">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+Extraイベント共通型。
+eventFamily属性値は"extra"固定。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="tns:TextLines">
+                <xsd:attribute
+                    name="eventFamily"
+                    type="tns:EventFamily"
+                    fixed="extra"
+                />
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+
+
+<!-- 各種グループ定義 ################################ -->
+
+    <!-- ================================================================ -->
+
+    <xsd:group name="EventAnnounceGroup">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+Announce型システムメッセージ要素のグループ
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:choice>
+            <xsd:element ref="tns:startEntry" />
+            <xsd:element ref="tns:onStage" />
+            <xsd:element ref="tns:startMirror" />
+            <xsd:element ref="tns:openRole" />
+            <xsd:element ref="tns:murdered" />
+            <xsd:element ref="tns:startAssault" />
+            <xsd:element ref="tns:survivor" />
+            <xsd:element ref="tns:counting" />
+            <xsd:element ref="tns:suddenDeath" />
+            <xsd:element ref="tns:noMurder" />
+            <xsd:element ref="tns:winVillage" />
+            <xsd:element ref="tns:winWolf" />
+            <xsd:element ref="tns:winHamster" />
+            <xsd:element ref="tns:playerList" />
+            <xsd:element ref="tns:panic" />
+            <xsd:element ref="tns:execution" />
+            <xsd:element ref="tns:vanish" />
+            <xsd:element ref="tns:checkout" />
+            <xsd:element ref="tns:shortMember" />
+        </xsd:choice>
+    </xsd:group>
+
+    <!-- ================================================================ -->
+
+    <xsd:group name="EventOrderGroup">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+Order型システムメッセージ要素のグループ
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:choice>
+            <xsd:element ref="tns:askEntry" />
+            <xsd:element ref="tns:askCommit" />
+            <xsd:element ref="tns:noComment" />
+            <xsd:element ref="tns:stayEpilogue" />
+            <xsd:element ref="tns:gameOver" />
+        </xsd:choice>
+    </xsd:group>
+
+    <!-- ================================================================ -->
+
+    <xsd:group name="EventExtraGroup">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+Extra型システムメッセージ要素のグループ
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:choice>
+            <xsd:element ref="tns:judge" />
+            <xsd:element ref="tns:guard" />
+            <xsd:element ref="tns:counting2" />
+            <xsd:element ref="tns:assault" />
+        </xsd:choice>
+    </xsd:group>
+
+
+<!-- 各種要素定義 ################################ -->
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="village">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+このスキーマ中の最高位ルート要素。
+1つの「村」に対応する。
+period並びは日順で並んでいなければならない。
+
+xml:lang => この要素内部で使われる言語。デフォルトは「ja-JP」
+xml:base => この要素内で現れる相対URIのベース。
+            人狼BBSの運営方針によっては将来無効になる可能性もある。
+xml:space => li要素より上位要素内のホワイトスペースのパース方針。
+fullName => 村のフルネーム(ex.「F1784 日の沈まぬ村」)
+vid => 村の識別ID(ex.「1784」)
+commitTime => 更新時刻。24時間村なら出力するのが望ましい。
+              GMTとの時差も出力するのが望ましい。
+              午後1時30分更新の例)「13:30:00+09:00」
+              時差表記がないならtimezone属性を使って
+              読み込み時に補正すべき。
+state => 村の状態
+disclosure => 発言の開示状況。
+              「hot」ならプレイ真っ最中の最新日が含まれている。
+              「uncomplete」なら未開示発言を含む日が含まれている。
+              「complete」なら全発言は完全に開示されている。
+isValid => システムのトラブルでゲーム勝敗が成り立っていないと
+           判断できるならfalse
+landName => 国の名前。「人狼BBS:F国」など。
+formalName => 正式名称。http://homepage2.nifty.com/ninjinia/ に準ずる。
+landId => JinCoreライブラリで管理している国の識別子。F国なら「wolff」
+landPrefix => 村名の前置詞。F国なら「F」。
+              無い国も複数ある。
+locale => この国で使われている言葉・文化。
+origencoding => この国で使われているエンコーディング
+timezone => この国の時刻表記で使われているタイムゾーン。
+graveIconURI => 墓アイコン画像のURI
+generator => XMLを吐き出したアプリ、サブシステム、ライブラリの名前。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:sequence>
+                <xsd:element ref="tns:avatarList" />
+                <xsd:element
+                    ref="tns:period"
+                    minOccurs="0" maxOccurs="unbounded"
+                />
+            </xsd:sequence>
+            <xsd:attribute
+                ref="xml:lang"
+                use="optional"
+                default="ja-JP"
+            />
+            <xsd:attribute
+                ref="xml:base"
+                use="required"
+            />
+            <xsd:attribute
+                ref="xml:space"
+                use="optional"
+                default="default"
+            />
+            <xsd:attribute
+                name="fullName"
+                type="xsd:normalizedString"
+                use="required"
+            />
+            <xsd:attribute
+                name="vid"
+                type="xsd:nonNegativeInteger"
+                use="required"
+            />
+            <xsd:attribute
+                name="commitTime"
+                type="xsd:time"
+                use="optional"
+            />
+            <xsd:attribute
+                name="state"
+                type="tns:VillageState"
+                use="required"
+            />
+            <xsd:attribute
+                name="disclosure"
+                type="tns:DisclosureType"
+                use="optional"
+                default="complete"
+            />
+            <xsd:attribute
+                name="isValid"
+                type="xsd:boolean"
+                use="optional"
+                default="true"
+            />
+            <xsd:attribute
+                name="landName"
+                type="xsd:normalizedString"
+                use="required"
+            />
+            <xsd:attribute
+                name="formalName"
+                type="xsd:normalizedString"
+                use="required"
+            />
+            <xsd:attribute
+                name="landId"
+                type="tns:LandIdentifier"
+                use="required"
+            />
+            <xsd:attribute
+                name="landPrefix"
+                type="xsd:token"
+                use="required"
+            />
+            <xsd:attribute
+                name="locale"
+                type="xsd:language"
+                use="optional"
+                default="ja-JP"
+            />
+            <xsd:attribute
+                name="origencoding"
+                type="tns:EncodingDecl"
+                use="optional"
+                default="Shift_JIS"
+            />
+            <xsd:attribute
+                name="timezone"
+                type="tns:Timezone"
+                use="optional"
+                default="GMT+09:00"
+            />
+            <xsd:attribute
+                name="graveIconURI"
+                type="xsd:anyURI"
+                use="required"
+            />
+            <xsd:attribute
+                name="generator"
+                type="xsd:normalizedString"
+                use="optional"
+            />
+        </xsd:complexType>
+
+        <!-- ここからキー定義 -->
+
+        <xsd:key name="avatar-id">
+            <xsd:selector xpath="./tns:avatarList/tns:avatar" />
+            <xsd:field xpath="@avatarId" />
+        </xsd:key>
+
+        <xsd:keyref name="avatarRef-avatar" refer="tns:avatar-id">
+            <xsd:selector xpath=".//tns:avatarRef" />
+            <xsd:field xpath="@avatarId" />
+        </xsd:keyref>
+
+        <xsd:keyref name="onStage-avatar" refer="tns:avatar-id">
+            <xsd:selector xpath=".//tns:onStage" />
+            <xsd:field xpath="@avatarId" />
+        </xsd:keyref>
+
+        <xsd:keyref name="counting-avatar-victim" refer="tns:avatar-id">
+            <xsd:selector xpath=".//tns:counting" />
+            <xsd:field xpath="@victim" />
+        </xsd:keyref>
+
+        <xsd:keyref name="vote-avatar-by" refer="tns:avatar-id">
+            <xsd:selector xpath=".//tns:vote" />
+            <xsd:field xpath="@byWhom" />
+        </xsd:keyref>
+
+        <xsd:keyref name="vote-avatar-to" refer="tns:avatar-id">
+            <xsd:selector xpath=".//tns:vote" />
+            <xsd:field xpath="@target" />
+        </xsd:keyref>
+
+        <xsd:keyref name="suddenDeath-avatar" refer="tns:avatar-id">
+            <xsd:selector xpath=".//tns:suddenDeath" />
+            <xsd:field xpath="@avatarId" />
+        </xsd:keyref>
+
+        <xsd:keyref name="playerInfo-avatar" refer="tns:avatar-id">
+            <xsd:selector xpath=".//tns:playerInfo" />
+            <xsd:field xpath="@avatarId" />
+        </xsd:keyref>
+
+        <xsd:keyref name="examine-avatar-by" refer="tns:avatar-id">
+            <xsd:selector xpath=".//tns:judge" />
+            <xsd:field xpath="@byWhom" />
+        </xsd:keyref>
+
+        <xsd:keyref name="examine-avatar-to" refer="tns:avatar-id">
+            <xsd:selector xpath=".//tns:judge" />
+            <xsd:field xpath="@target" />
+        </xsd:keyref>
+
+        <xsd:keyref name="guard-avatar-by" refer="tns:avatar-id">
+            <xsd:selector xpath=".//tns:guard" />
+            <xsd:field xpath="@byWhom" />
+        </xsd:keyref>
+
+        <xsd:keyref name="guard-avatar-to" refer="tns:avatar-id">
+            <xsd:selector xpath=".//tns:guard" />
+            <xsd:field xpath="@target" />
+        </xsd:keyref>
+
+        <xsd:keyref name="assault-avatar-by" refer="tns:avatar-id">
+            <xsd:selector xpath=".//tns:assault" />
+            <xsd:field xpath="@byWhom" />
+        </xsd:keyref>
+
+        <xsd:keyref name="assault-avatar-to" refer="tns:avatar-id">
+            <xsd:selector xpath=".//tns:assault" />
+            <xsd:field xpath="@target" />
+        </xsd:keyref>
+
+        <xsd:keyref name="talk-avatar" refer="tns:avatar-id">
+            <xsd:selector xpath=".//tns:talk" />
+            <xsd:field xpath="@avatarId" />
+        </xsd:keyref>
+
+        <xsd:unique name="period-day">
+            <xsd:selector xpath="./tns:period" />
+            <xsd:field xpath="@day" />
+        </xsd:unique>
+
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="avatarList">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+Avatar(キャラクター)の集合。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:sequence minOccurs="0" maxOccurs="unbounded">
+                <xsd:element ref="tns:avatar" />
+            </xsd:sequence>
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="avatar">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+Avatar(キャラクター)の定義。
+
+avatarId => Avatarの識別名。
+      Avatarを連想させる簡潔なアルファベット列が望ましい。(例:「gerd」)
+      適当にユニークで簡素なアルファベットを割り振ってもよい。
+      短縮名で代用してもよい。
+      ハイフン禁止。
+fullName => Avatarのフルネーム。(ex.「楽天家 ゲルト」)
+shortName => Avatarの短縮名。(ex.「ゲルト」)スペース禁止。
+faceIconURI => 顔画像アイコンへのURI。
+               プロローグから一言も発言せずに突然死した場合は省略してもよい。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:sequence />
+            <xsd:attribute
+                name="avatarId"
+                type="tns:AvatarId"
+                use="required"
+            />
+            <xsd:attribute
+                name="fullName"
+                type="xsd:normalizedString"
+                use="required"
+            />
+            <xsd:attribute
+                name="shortName"
+                type="xsd:token"
+                use="required"
+            />
+            <xsd:attribute
+                name="faceIconURI"
+                type="xsd:anyURI"
+                use="optional"
+            />
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="period">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+Period(日)の定義。
+子要素として、会話およびシステムメッセージを0個以上抱える。
+各システムメッセージの出現順に関する制約
+(「突然死の次は投票結果のはず」、etc.)は、
+このスキーマでは定義しない。
+
+type => このPeriodの種類。
+day => プロローグは0、n日目はn、n日目の次にエピローグが来たなら、
+       エピローグはn+1となる。
+disclosure => 発言の開示状況。
+              「hot」ならその日はプレイ真っ最中の最新日。
+              「uncomplete」ならまだその日の未開示発言を取得していない可能性がある。
+              「complete」ならその日の全発言は完全に開示された。
+nextCommitDay => 次回更新月日。年はなし。
+                 GMTとの時差も出力するのが望ましい。
+                 8月31日の例)「--08-31+09:00」
+                 時差表記がないならlandInfo要素のtimezone属性を使って
+                 読み込み時に補正すべき。
+commitTime => 更新時刻。秒以下の単位は切り捨て。
+              GMTとの時差も出力するのが望ましい。
+              午後1時30分更新の例)「13:30:00+09:00」
+              時差表記がないならland要素のtimezone属性を使って
+              読み込み時に補正すべき。
+sourceURI => このPeriodを取り込んだときの元となったURI。
+             同じ村の同じ日でも、進行によってURIが変わることが
+             ありうる。
+loadedTime => このPeriodを取り込んだ時刻。
+              GMTとの時差も出力するのが望ましい。
+              人狼BBSサーバからのHTTP応答内部から算出するのが望ましい。
+              無理ならローカルカレンダから。
+loadedBy => 進行中の村を参加者が読み込んだ場合、その時のログインIDを出力する。
+            windows31jに由来する文字が含まれる場合もある。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                <xsd:element ref="tns:talk" />
+                <xsd:group ref="tns:EventAnnounceGroup" />
+                <xsd:group ref="tns:EventOrderGroup" />
+                <xsd:group ref="tns:EventExtraGroup" />
+            </xsd:choice>
+            <xsd:attribute
+                name="type"
+                type="tns:PeriodType"
+                use="required"
+            />
+            <xsd:attribute
+                name="day"
+                type="xsd:nonNegativeInteger"
+                use="required"
+            />
+            <xsd:attribute
+                name="disclosure"
+                type="tns:DisclosureType"
+                use="optional"
+                default="complete"
+            />
+            <xsd:attribute
+                name="nextCommitDay"
+                type="xsd:gMonthDay"
+                use="required"
+            />
+            <xsd:attribute
+                name="commitTime"
+                type="xsd:time"
+                use="required"
+            />
+            <xsd:attribute
+                name="sourceURI"
+                type="xsd:anyURI"
+                use="required"
+            />
+            <xsd:attribute
+                name="loadedTime"
+                type="xsd:dateTime"
+                use="optional"
+            />
+            <xsd:attribute
+                name="loadedBy"
+                type="tns:PlayerId"
+                use="optional"
+            />
+        </xsd:complexType>
+
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="avatarRef">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+Avatarへの参照。
+avatarId => Avatar識別子
+※ IDREFS属性を使うのやめた。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:attribute
+                name="avatarId"
+                type="tns:AvatarId"
+                use="required"
+            />
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="startEntry" type="tns:EventAnnounce">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:エントリ開始
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="onStage" >
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:参加者登場
+entryNo => 登場順番号。ごくまれにAvatar間で重複することあり。
+avatarId => Avatar識別子
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:EventAnnounce">
+                    <xsd:attribute
+                        name="entryNo"
+                        type="xsd:positiveInteger"
+                        use="required"
+                    />
+                    <xsd:attribute
+                        name="avatarId"
+                        type="tns:AvatarId"
+                        use="required"
+                    />
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="startMirror" type="tns:EventAnnounce">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:1日目開始
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="openRole">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:役職構成開示
+roleHeads要素(各役職の人数記述)を複数かかえる。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:EventAnnounce">
+                    <xsd:sequence minOccurs="1" maxOccurs="unbounded">
+                        <xsd:element ref="tns:roleHeads" />
+                    </xsd:sequence>
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="roleHeads">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+役職とその人数
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:attribute
+                name="role"
+                type="tns:Role"
+                use="required"
+            />
+            <xsd:attribute
+                name="heads"
+                type="xsd:positiveInteger"
+                use="required"
+            />
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="murdered">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:突然死でない犠牲者
+avatarRef(Avatar参照)要素を1つ持つ。E国では2つ(ハム溶け)の場合も。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:EventAnnounce">
+                    <xsd:sequence>
+                        <xsd:element
+                            ref="tns:avatarRef"
+                            minOccurs="1" maxOccurs="2"
+                        />
+                    </xsd:sequence>
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="startAssault" type="tns:EventAnnounce">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:最初の襲撃
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="survivor">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:生存者一覧
+生存者を表すavatarRef(Avatar参照)要素を1つ以上持つ。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:EventAnnounce">
+                    <xsd:sequence>
+                        <xsd:element
+                            ref="tns:avatarRef"
+                            minOccurs="1"
+                            maxOccurs="unbounded"
+                        />
+                    </xsd:sequence>
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="counting">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:投票開示
+vote要素(個々の投票)を1つ以上持つ。
+victim => 処刑された人のAvatar識別子。誰も処刑されなかったら省略。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:EventAnnounce">
+                    <xsd:sequence>
+                        <xsd:element
+                            ref="tns:vote"
+                            minOccurs="1"
+                            maxOccurs="unbounded"
+                        />
+                    </xsd:sequence>
+                    <xsd:attribute
+                        name="victim"
+                        type="tns:AvatarId"
+                        use="optional"
+                    />
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="vote">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+処刑投票した人とされた人のペア。
+voteBy => 投票した人のAvatar識別子
+voteTo => 投票された人のAvatar識別子
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:attribute
+                name="byWhom"
+                type="tns:AvatarId"
+                use="required"
+            />
+            <xsd:attribute
+                name="target"
+                type="tns:AvatarId"
+                use="required"
+            />
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="suddenDeath" >
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:突然死
+avatarId => 突然死者のAvatar識別子
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:EventAnnounce">
+                    <xsd:attribute
+                        name="avatarId"
+                        type="tns:AvatarId"
+                        use="required"
+                    />
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="noMurder" type="tns:EventAnnounce">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:襲撃による犠牲者なし。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="winVillage" type="tns:EventAnnounce">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:村陣営の勝利
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="winWolf" type="tns:EventAnnounce">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:狼陣営の勝利
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="winHamster" type="tns:EventAnnounce">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:ハムスター陣営の勝利
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="playerList">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:プレイヤー一覧開示
+プレイヤーに関する情報(playerInfo要素)を1つ以上持つ。
+avatar総数より少ない場合もあるかもしれない。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:EventAnnounce">
+                    <xsd:sequence>
+                        <xsd:element
+                            ref="tns:playerInfo"
+                            minOccurs="1" maxOccurs="unbounded"
+                        />
+                    </xsd:sequence>
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="playerInfo">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+プレイヤー情報。
+playerId => プレイヤーのログインID。E国では@やTypeKeyニックネームを含む全部。
+            windows31jに由来する文字が含まれる場合もある。
+avatarId => Avatar識別子
+survive => 最終日まで生きていたか否か。
+role => 担当した役職
+uri => プレイヤーの指定した連絡先URI。URI条件を満たすかどうかは不明。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:attribute
+                name="playerId"
+                type="tns:PlayerId"
+                use="required"
+            />
+            <xsd:attribute
+                name="avatarId"
+                type="tns:AvatarId"
+                use="required"
+            />
+            <xsd:attribute
+                name="survive"
+                type="xsd:boolean"
+                use="required"
+            />
+            <xsd:attribute
+                name="role"
+                type="tns:Role"
+                use="required"
+            />
+            <xsd:attribute
+                name="uri"
+                type="xsd:token"
+                use="optional"
+            />
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="panic" type="tns:EventAnnounce">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:システム上のパニック
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="execution">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:処刑結果開示 (G国)
+nominated要素(個々の投票集計)を1つ以上持つ。
+誰が投票したかは開示されない。
+victim => 処刑された人のAvatar識別子。誰も処刑されなかったら省略。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:EventAnnounce">
+                    <xsd:sequence>
+                        <xsd:element
+                            ref="tns:nominated"
+                            minOccurs="1"
+                            maxOccurs="unbounded"
+                        />
+                    </xsd:sequence>
+                    <xsd:attribute
+                        name="victim"
+                        type="tns:AvatarId"
+                        use="optional"
+                    />
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="nominated">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+G国投票状況。
+誰が投票したかは開示されない。
+voteと異なり既に集計済みの結果が表される。
+avatarId => 被投票者
+count => 集票数
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:attribute
+                name="avatarId"
+                type="tns:AvatarId"
+                use="required"
+            />
+            <xsd:attribute
+                name="count"
+                type="xsd:positiveInteger"
+                use="required"
+            />
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="vanish">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:失踪 (G国)
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:EventAnnounce">
+                    <xsd:attribute
+                        name="avatarId"
+                        type="tns:AvatarId"
+                        use="required"
+                    />
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="checkout">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:チェックアウト (G国)
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:EventAnnounce">
+                    <xsd:attribute
+                        name="avatarId"
+                        type="tns:AvatarId"
+                        use="required"
+                    />
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="shortMember" type="tns:EventAnnounce">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:定員不足 (G国)
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="askEntry" >
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:プロローグ中の参加促し。
+commitTime => 更新時刻
+minMembers => 最少人数
+maxMembers => 最大人数
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:EventOrder">
+                    <xsd:attribute
+                        name="commitTime"
+                        type="xsd:time"
+                        use="required"
+                    />
+                    <xsd:attribute
+                        name="minMembers"
+                        type="xsd:positiveInteger"
+                        use="required"
+                    />
+                    <xsd:attribute
+                        name="maxMembers"
+                        type="xsd:positiveInteger"
+                        use="required"
+                    />
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="askCommit" >
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:投票促し
+limitVote => 投票期限
+limitSpecial => 特殊行動期限
+※ 両者とも同じ値のはず。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:EventOrder">
+                    <xsd:attribute
+                        name="limitVote"
+                        type="xsd:time"
+                        use="required"
+                    />
+                    <xsd:attribute
+                        name="limitSpecial"
+                        type="xsd:time"
+                        use="required"
+                    />
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="noComment">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:発言促し
+未発言AvatarのAvatar参照要素(avatarRef)を1つ以上含む。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:EventOrder">
+                    <xsd:sequence>
+                        <xsd:element
+                            ref="tns:avatarRef"
+                            minOccurs="1"
+                            maxOccurs="unbounded"
+                        />
+                    </xsd:sequence>
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="stayEpilogue" >
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:エピローグ終了予告
+winner => 勝利陣営
+limitTime => エピローグ終了時刻
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:EventOrder">
+                    <xsd:attribute
+                        name="winner"
+                        type="tns:Team"
+                        use="required"
+                    />
+                    <xsd:attribute
+                        name="limitTime"
+                        type="xsd:time"
+                        use="required"
+                    />
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="gameOver" type="tns:EventOrder">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:ゲーム終了
+エピローグの次の日にしか出ないけど一応。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="judge">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:占い師と占われた人
+byWhom => 占い師Avatarの識別子。
+target => 占われたAvatarの識別子。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:EventExtra">
+                    <xsd:attribute
+                        name="byWhom"
+                        type="tns:AvatarId"
+                        use="required"
+                    />
+                    <xsd:attribute
+                        name="target"
+                        type="tns:AvatarId"
+                        use="required"
+                    />
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="guard" >
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:狩人と護衛された人。
+byWhom => 狩人Avatarの識別子。
+target => 護衛されたAvatarの識別子。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:EventExtra">
+                    <xsd:attribute
+                        name="byWhom"
+                        type="tns:AvatarId"
+                        use="required"
+                    />
+                    <xsd:attribute
+                        name="target"
+                        type="tns:AvatarId"
+                        use="required"
+                    />
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="counting2">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:投票開示(G国以降)
+vote要素(個々の投票)を1つ以上持つ。
+countingと異なりvictim属性は定義されていない。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:EventExtra">
+                    <xsd:sequence>
+                        <xsd:element
+                            ref="tns:vote"
+                            minOccurs="1"
+                            maxOccurs="unbounded"
+                        />
+                    </xsd:sequence>
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="assault" >
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+システムメッセージ:襲撃
+人狼BBSのXHTML上は赤ログに見える。
+byWhom => 襲撃した人狼のAvatar識別子
+target => 襲撃されたAvatarの識別子
+xname => 人狼BBS XHTML上のname属性値
+time => 襲撃時刻。秒以下の単位は切り捨て。
+faceIconURI => アイコン画像URI
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:EventExtra">
+                    <xsd:attribute
+                        name="byWhom"
+                        type="tns:AvatarId"
+                        use="required"
+                    />
+                    <xsd:attribute
+                        name="target"
+                        type="tns:AvatarId"
+                        use="required"
+                    />
+                    <xsd:attribute
+                        name="xname"
+                        type="xsd:NCName"
+                        use="required"
+                    />
+                    <xsd:attribute
+                        name="time"
+                        type="xsd:time"
+                        use="required"
+                    />
+                    <xsd:attribute
+                        name="faceIconURI"
+                        type="xsd:anyURI"
+                        use="optional"
+                    />
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+    <xsd:element name="talk">
+        <xsd:annotation>
+<xsd:documentation><![CDATA[
+############################################################################
+会話データ。
+
+type => 発言種別。
+avatarId => 話したAvatarの識別子。
+xname => 村の中ではほぼユニークな識別子だが、たまに重複もありえる。
+         人狼BBS元データXHTMLのname属性の値に由来する。例:(「mes1239694501」)
+         後半の数値列はエポック時からのミリ秒らしい。
+time => 発言時刻。秒以下の単位は切り捨て。時差も付けるべし。
+faceIconURI => avatar要素の顔アイコンURIと同一なら省略。
+               もし指定されていたら、avatar要素の顔アイコンURIより
+               こちらを使ってイメージ表示した方が望ましい。
+############################################################################
+]]></xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="tns:TextLines">
+                    <xsd:attribute
+                        name="type"
+                        type="tns:TalkType"
+                        use="required"
+                    />
+                    <xsd:attribute
+                        name="avatarId"
+                        type="tns:AvatarId"
+                        use="required"
+                    />
+                    <xsd:attribute
+                        name="xname"
+                        type="xsd:NCName"
+                        use="required"
+                    />
+                    <xsd:attribute
+                        name="time"
+                        type="xsd:time"
+                        use="required"
+                    />
+                    <xsd:attribute
+                        name="faceIconURI"
+                        type="xsd:anyURI"
+                        use="optional"
+                    />
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <!-- ================================================================ -->
+
+</xsd:schema>
+
+<!-- EOF -->