3月15日(金)XMLスキーマ(1)
 今回はXMLスキーマをどう書いていくかを考えていきます。
モンコレは6種のカードからなるので、次のようにスキーマを記述します。

<xsd:element name="mcml">
<xsd:complexType>
 <xsd:sequence>
  <xsd:element name="ユニット" type="unitType" minOccurs="0" maxOccurs="unbounded"/>
  <xsd:element name="アイテム" type="itemType" minOccurs="0" maxOccurs="unbounded"/>
  <xsd:element name="戦闘スペル" type="battleSpellType" minOccurs="0" maxOccurs="unbounded"/>
  <xsd:element name="儀式スペル" type="ceremonySpellType" minOccurs="0" maxOccurs="unbounded"/>
  <xsd:element name="地形" type="landformType" minOccurs="0" maxOccurs="unbounded"/>
  <xsd:element name="召喚術師" type="summonerType" minOccurs="0" maxOccurs="unbounded"/>
 </xsd:sequence>
</xsd:complexType>
</xsd:element>

 これは、"mcml"というタグに"ユニット"などのタグが含まれることを表しています。 "complexType"というのは複合型を表します。たしか。 "sequence"はタグがこの順番で現れることを示しています。また、"minOccurs"と"maxOccurs"は タグの出現回数を示します。上記のものは0〜∞出現することを表しています。 具体的には実際のタグは次のような感じになります。

<mcml>
 <ユニット></ユニット>
 <ユニット></ユニット>
 <アイテム></アイテム>
 <地形></地形>
</mcml>

スキーマを記述することにより、パーサを使ってそのXML文章が正しいかを検査することが出来ます。
 次回は"ユニット"タグについて考えます。
8月8日(木)XMLスキーマ(2)
 という事で、今回は"ユニット"タグです。"ユニット"タグのスキーマは以下のようになります。

<xsd:complexType name="unitType">
  <xsd:complexContent>
    <xsd:extension base="cardType">
      <xsd:sequence>
        <xsd:element name="属性" type="attributeType"/>
        <xsd:element name="種族" type="xsd:string"/>
        <xsd:element name="レベル" type="levelType"/>
        <xsd:element name="攻撃力" type="xsd:nonNegativeInteger"/>
        <xsd:element name="防御力" type="xsd:nonNegativeInteger"/>
        <xsd:element name="進軍タイプ" type="advanceType"/>
        <xsd:element name="常備能力" type="standingAbilityType" minOccurs="0"/>
        <xsd:element name="特殊能力" type="specialAbilityType" minOccurs="0" 
                                    maxOccurs="unbounded"/>
      </xsd:sequence>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>
 <xsd:extension base="cardType">より"ユニット"タグはcardTypeを拡張して作られていることがわかります。 また、属性等は〜Typeで定義されています。攻撃力等は非負整数と定義されていることが わかると思います。 次回は、cardTypeやattributeTypeの説明をします。


もどる