赤紫蘇2 リファレンス

成長の記録(Release notes)

akaxiso2.0-beta3


赤紫蘇2リファレンス

1.概要
1.1 赤紫蘇2の構成
1.2 プログラムの
開始から終了まで
1.3 文字コードと
文字コード変換エンジン
1.4 名前空間とQName
1.5 マルチスレッディング

2. 赤紫蘇2データモデル
2.1 チュートリアル
2.2 パーティクル
2.3 aka:sequence
2.3.1 単純型の子要素
2.3.2 複合型の子要素
2.3.1 配列型
2.4 aka::all
2.5 aka:choice
2.5.1 複雑型の子要素
2.5.2 単純型の子要素
2.5.3 バインダクラス
2.5.4 子要素オブジェクト
(aka::item)の扱い
2.5.5 子要素の出現頻度
2.6 属性
2.7 aka:simpleContent
2.8 単純型(aka:simleType)
2.8.1

組み込み型

2.9

配列とポインタ

2.,10 ワイルドカード

3 XMLによる永続化
3.1 シリアライズ
3.2 デシリアライズ

付表
A ライブラリ主要API
B XML Schemaとの
機能対応表
C リリースノート

赤紫蘇2.0 beta2(2004/12/19)

全般

  • ディレクトリ、プロジェクトファイル、ライブラリ名などの名前の整理。
    • ディレクトリ、プロジェクト名変更
      akaxiso -> akaxiso2
      akaxiso_samples -> akaxiso2_samples
      osixaka_samples -> osixaka2_samples

    • osixaka、akaxiso/schemaは、deprecated

    • ライブラリ名
      libakaxiso -> libakaxiso2
      libosixaka -> libosixaka2

  • VC Toolkit 2003 makefile追加
    VC Toolkit 2003 でも、libakaxiso2.libとosixaka2がビルド可能。

赤紫蘇2

  • 変更・機能追加
    • 環境設定用マクロ名のプレフィックスとして、AKAXISO2_を追加。

    • PACKAGE/VERSIONマクロを削除 AKAXISO2_PACKAGE、AKAXISO2_VERSIONへと変更

    • <xs:anyAttribute>、<xs:attribute>のnamespaceList属性の機能を追加

    • emptiable な配列/choiceを追加
      minOccurs != 0 な条件でも、出現頻度0を許す設定を追加。

    • sequence/all/arrayの、occurrence()の指定削除
      choiceの場合は使用可。(ルートノードの出現頻度指定に必要。)

    • aka::preconditions -> aka::entity_complementsへとクラス名変更
      bool entity_complements::check_id() constからconstを除去。

    • aka::simpletype::read_text()、aka::simpletype<>::write_text()のインターフェース変更。

    • aka::choice<>::moc を aka::choice<>::binderに名称変更。

    • aka::any, aka::wildcardを分離
      (aka::anyは、ワイルドカード要素、もしくは、別に定義されるドキュメントと定義される。
      aka::wild_cardは、ワイルドカード要素そのものとなる。)

    • XMLシリアライザに、デフォルト名前空間の指定機能を追加
      xmlns="URI"という形で、デフォルト名前空間を用いてシリアライズ可能。
      以下APIを参照のこと。
      - serializer::default_ns_prefix(const std::string &prefix);
      - serializer::default_ns_uri(const std::string &uri);

    • aka::qnameクラスのコンストラクタをexplicitに変更

    • aka::qname::get_uri_id() -> aka::qname::get_namespace_id()と名称変更。

    • aka::any_attribute -> aka::wc_attributeと名称変更

    • 配列や<xs:choice>について要素が0個と成りうる場合の出現頻度検証ロジックを修正

  • バグフィックス
    • aka::exceptionが、例外がthrowされる場所を表示しない

    • expatを使用した際に、名前空間の処理が属性の出現順に依存する

    • デフォルト名前空間使用時のタグ名の比較が、正常に行われない。

忍坂2

  • 機能追加・変更
    • 識別子空間の整理

    • XMLスキーマ中での設定機能追加。
      - osx:include、osx:xiso_include、osx:ximpl_include
      - osx:leaf
      - osx:classnameなど。

    • 設定ファイル再構築(中)

    • xs:any、xs:anyAttributeのnamespace属性の扱いを追加。

    • トップレベルのxs:attributeが名前空間を扱えるよう変更。

    • 忍坂1と同等のソースを生成するオプション(-1)を追加。

    • MFCスタイルのメンバ名(m_member)を生成するオプション(-M)を追加

    • 赤紫蘇化エンジンを再構築

    • 単純型の依存性解決エンジンを追加

    • 単純型をルート要素するドキュメントの生成機能を追加

    • 複数スキーマファイルからのコード生成機能を追加(-n -f オプション)

    • 不完全型を配列要素で使用する/しないを指定するオプション(-iオプション)を追加。

    • グローバルアトリビュートのメンバ名は、名前空間プレフィックスを含むように変更。

    • 生成されるクラスの依存性解決の際、不完全型を極力使用しないように変更。

    • DTD->XMLSchema変換時のエンコーディングをサポート。

    • expatが使用されていないときに、DTD->XMLSchema変換オプションを使用不可に設定。

    • 忍坂2で使用されるXML文書定義(XMLSchemaそのもの含む)を、忍坂2で生成した

  • バグ修正
    • クラスの前置宣言のトークン置換が行われていない

    • クラス名、メンバ名のエスケープ処理が行われていない

    • DTD->XMLSchema変換のバグとり。ソース生成ロジックの改善。

    • DTD中に定義される単純型(正規表現を使用)も変換するようコードを追加。

赤紫蘇2.0 beta1 (2004/8/16)

赤紫蘇

  • Solaris/g++2.95.3対応
    • ユーザMLの小宮山さん、三嶋さん、ありがとうございました。
  • MacOS X 10.2 対応(babelを使用しない場合に限る。)
    • iBookを譲っていただき、さらに、MacOSの手ほどきをしてくださった西澤さん、
      ありがとうございました。
  • BCB6プロジェクトファイル更新
    • 吉岡さん、おつかれでやんす。
  • aka:all以下に現れるxs:anyTypeについて実装もれを修正
  • aka:simplecontentについて、固定値を与えた際のバグをフィックス
  • ライブラリ内の単語を修正 parse -> deserialize
  • Yggdrasil (世界樹)からexpatへと同梱XMLパーサを切り替え
  • ソースからの日本語削除(gcc-2.95系対応)
  • configureによる構成の設定変更を行えるようにした。(Linux、UNIX)
  • ディレクトリ構造の整理と再構築
  • こまごまとしたFix、テストの追加

忍坂2

  • 設定ファイルオプションを追加
  • DTD -> XMLSchema変換機能を追加

赤紫蘇2.0 beta0 (2004/6/7)

  • 忍坂2α版リリース
  • g++3.4.0 サポート
  • XML Namespace 1.1 サポート(シリアライザ、デシリアライザとも)
  • こまごまとしたBug-fix、APIの整理
  • 組み込み型のサポート
  • コンパイルの高速化(インクルードファイルの最適化)
  • 起動時間の短縮(babelの変換テーブルを静的に確保)


赤紫蘇2トップへ sourceforgeプロジェクトページへ