[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[1579] format:document-v12 の場合、<figure>タグにtitle属性を書かないとForrestがエラーにする



松橋です。

SmartDoc+Apache Forrestをやっています。瑣末ではありますがSmartDocの不都合を
見つけましたので報告します。

浅海さんが2004年3月17日に発信されたメールにあるsample.zipを題材にして説明し
ます。

zipにindex.sdocファイルが含まれていますがそれをほんのすこし改変したものを下
記に添付します。

(See attached file: index.sdoc)
これをsample.zipの元の箇所にもどし、document-v12を生成すべくSmartDocを実行
するとなにごともなく成功します。

そのあとForrest本体を動かしてsiteを構築しようとすると、Forrestが下記のエ
ラーメッセージを出力します。

validate-xdocs:
/C:/temp/sdoc-forrest/src/documentation/content/xdocs/index.xml:43:50:
Attribute "alt" is required and must be specified for element type
"figure".

BUILD FAILED


このエラーのせいでサイトは生成されずじまいになります。その意味では重度のエ
ラーの扱い。

理由は明らかです。document-v12形式であるべきindex.xmlファイルのなかにfigure
要素があるのですがそのfigure要素に必須であるalt属性が無いというのが原因。こ
のindex.xmlファイルはSmartDocをつかってsdoc文書から生成したものです。

どうしてこうなるのか?上記添付のindex.sdocの該当箇所の記述はこうです。

      <figure src="images/xyz" id="fig-xyz"/>

じつは、浅海さんのオリジナルのsampleではこうなっていました。

      <figure src="images/xyz" title="xyz" id="fig-xyz"/>

SmartDocは、sdoc文書のなかのfigure要素のtitle属性があればそれをalt属性とし
て出力する、もしもtitle属性が無ければalt属性も出力しない、という動きをして
いるようです。

提案: sdoc文書のなかの<figure>要素にtitle属性がなければ document-v12の
figure要素にalt="" のように空文字列を内容とするalt要素を出力する、のでいか
がでしょうか?やってみたところ Forrest は alt=""を受け付けてくれました。あ
るいはid属性をコピるというのもテかもしれません。






                                                                                                                                                   
                      ASAMI Tomoharu                                                                                                               
                      <dp8t-asm@asahi-net.or.j         宛先:    sdocusersj@ml.asahi-net.or.jp                                                      
                      p>                               cc:                                                                                         
                      送信者:                          件名:    [sdocusersj 1460] Re: SmartDoc and Apache Forrest                                  
                      owner-sdocusersj@ml.asah                                                                                                     
                      i-net.or.jp                                                                                                                  
                                                                                                                                                   
                                                                                                                                                   
                      2004/03/17 15:44                                                                                                             
                      sdocusersj へ返信してく                                                                                                      
                      ださい                                                                                                                       
                                                                                                                                                   
                                                                                                                                                   




  浅海です。

At Tue, 16 Mar 2004 13:31:36 +0900,
ASAMI Tomoharu wrote:
> - Forrestは、Cocoon(*)上に構築されたアプリケーションであり、SmartDoc文
>   書のような新しい文書種別の追加のような定義は基本的にCocoonの定義ファ
>   イルに行うことになる。(多分sitemap.xmap, forrest.xmapあたり)
> - SmartDoc文書の処理をCocoon+Forrestに追加するには、以下のいずれかのジェ
>   ネレータを作成する必要がある
>   (1) SmartDoc文書をdocument-v12文書に変換するジェネレータ
>   (2) SmartDoc文書をPureSmartDoc文書に変換するジェネレータ
>  ジェネレータはSmartDocをラップするCocoonのジェネレータ
> (org.apache.cocoon.generation.??Generator)として新規開発が必要。
>  (2)の場合は、さらにPureSmartDoc文書をdocument-v12文書に変換するXSLT
> スクリプトが必要。

 上記の本格的な方法ではなくて、Forrestの外付けでSmartDocを動作させる
機能を作ってみました。普通の使い方では、これで十分ではないかと思います。
# 本格的な方法も継続して調べる予定です。

http://www.xmlsmartdoc.org/download/tmp.zip

$ sdoc -version
Copyright(c) 1998-2004 ASAMI,Tomoharu. All rights reserved.
SmartDoc Version 1.2b (20040317) by asami@XMLSmartDoc.org

 この機能のデモを用意しました。

http://www.xmlsmartdoc.org/download/sample.zip

 興味のある方は試してみてください。
 使い方は以下の通りです。(同梱のREADME.sample)

--README.sample--
(1) forrest環境のセットアップ

$ cd $SAMPLE_HOME
$ forrest seed

(2) デモを展開

$ jar xvf $DOWNLOAD/sample.zip

(3) SmartDocとForrestを連続実行

$ ant

(4) 実行の結果の確認

build/site/index.htmlを開いてください。


[SmartDoc文書]

 サンプルのSmartDoc文書は、以下の場所にあります。

src/smartdoc/doc/index.sdoc

[実行環境]

 SmartDocのインストールディレクトリを以下の場所に想定しています。

/usr/local/lib/sdoc

 これ以外の場所にある場合には、src/smartdoc/build.propertiesを用意して
以下の設定を行って下さい。

---build.properties
sdoc.dir=SmartDocのインストールディレクトリ
---

--
あさみ@よこはま

Attachment: index.sdoc
Description: Binary data