赤紫蘇2.リファレンス |
|||||||||||||||||
データモデル |
|||||||||||||||||
赤紫蘇データモデル 赤紫蘇のデータモデルは、XML Schemaの抽象データモデルをベースとして作成されています。 特に、xs:complexTypeについては、赤紫蘇データモデルにおいて、明確に対応する要素がなく、単に、インスタンシングできるクラスとして、対応付けられます。 赤紫蘇データモデルにおけるパーティクル 赤紫蘇データモデルでは、aka:sequence、aka:all、aka:choiceという三つの要素が用いられます。これは、大きくは、XML-Schemaで用いられるパーティクル、xs:sequence、xs:all、xs:sequenceのそれぞれに、xs:complexTypeの機能を付加したような機能を持ちます。 XML-Schemaにおいて、使用可能な複雑型は、xs:complexTypeタグを用いて、定義されます。また、xs:sequence、xs:all、xs:choiceのようなパーティクルを直接的に、型として、XML文書中では使用できず、常に、xs:complexType、xs:group以下で定義することになります。 XML Schemaでは、属性宣言がxs:complexTypeで行われるますが、赤紫蘇データモデルでは、aka:sequence、aka:all内で、属性宣言を行います。XML Schemaの構造とは違い、パーティクルに属性を持つことを許します。 簡単にまとめたも表を、以下に示します。
aka:sequenceは、xs:complexTypeとxs:sequenceを併せて定義されたようなデータタイプです。 aka:allは、xs:allを下敷きにして作られています。実体は、メンバを持つクラスとして定義され、属性宣言、他のパーティクルの引用も可能です。しかしながら、xs:allの子要素がxs:elementに限定されているように、モデルグループの引用はできません。また、出現頻度の指定も制限がかけられています。 aka:choiceは、(STL)コンテナとして定義され、メンバを持つことを考慮していません。このため、属性宣言はできません。この場合には、aka:sequenceをxs:complexTypeの代用として使用し、クラスのメンバとして(STL)コンテナを用いることで、属性を持つaka:choiceを定義することができます。 |