2004年08月13日
川俣晶の縁側ソフトウェアMagSite1開発日誌total 3032 count

MagSite1 0.37リリース charsetパラメタ付加忘れとContentTypeの適応拡大

Written By: 川俣 晶連絡先

 MagSite1をVersion 0.37にバージョンアップしました。

charsetパラメタ付加忘れ §

 間抜けな話ですが、httpヘッダーにcharsetパラメタを付けるのを忘れていました。

 では単純にそれを付ければ良いのかというと、それほど簡単な話ではありません。なぜなら、出力に使用するencodingは、XSLT変換のencoding属性で指定され、ModulaFモジュールの外部で変動しうるものだからです。

ContentTypeはtext/htmlに限らない §

 更に考えが発展すると、ContentTypeの指定そのものが一定しない可能性も考えられます。現在は、PC用であろうと、i-mode用であろうと、text/htmlを出力すれば済みますが、あらゆるデバイスが全てtext/htmlで良いとは限りません。将来、思いもよらないデバイス向けのXSLT変換を誰かが書いてくれるためには、これも容易にカスタマイズ可能にする必要があります。

 というわけで、ユーザーエージェントの情報を記述するファイルの中に、ContentTypeの値を全て書き込むアーキテクチャに変更しました。

 たとえば、こんな感じです。ua:contentType要素が、ContentTypeの値として使用されます。

<?xml version="1.0" ?>

<ua:list xmlns:ua=

    "http://http://www.piedey.co.jp/xmlns/modulaf/useragents">

    <!-- i-mode HTML -->

    <ua:item>

        <!-- DoCoMo/で始まる -->

        <ua:rexp>^DoCoMo/</ua:rexp>

        <ua:filename>i-mode_html.xslt</ua:filename>

        <ua:contentType>text/html; charset=Shift_JIS</ua:contentType>

        <ua:divideInvoke>1000</ua:divideInvoke>

        <ua:divideLength>700</ua:divideLength>

        <ua:externalModule>external</ua:externalModule>

        <ua:mayModule>ignore</ua:mayModule>

    </ua:item>

    <!-- PC XHTML -->

    <!-- rexp要素抜きの場合は無条件に決まる -->

    <ua:item>

        <ua:filename>pc_xhtml.xslt</ua:filename>

        <ua:contentType>text/html; charset=utf-8</ua:contentType>

        <ua:divideInvoke>6000</ua:divideInvoke>

        <ua:divideLength>5000</ua:divideLength>

    </ua:item>

</ua:list>

 これを使用する場合、このファイル中のcharsetパラメタの値と、XSLT変換のencoding属性は一致している必要がありますが、滅多に更新しない情報と判断して、特に強制的に連動させる仕組みは用意しませんでした。

入手先 §

 MagSite1 0.37は、MagSiteMan1上からダウンロードできるほか、MagSiteDistシステムよりダウンロードできます。

MagSite1手動ダウンロード

変更点 §

 変更点は以下の通り。

  • systemTransformationSelector.xmlにContentType情報の追加
  • User-Agentヘッダが無いときにArgumentNullExceptionで落ちる (ModulaFモジュールアップデートによる解決)
  • charsetパラメタが付いていない (ModulaFモジュールアップデートによる解決)
  • ModulaFモジュールアップデート

謝辞 §

 charsetパラメタが付かない件をレポートして頂いた、ハシモト@アマガサキさんに、感謝いたします。

Facebook

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20040813165607
サイトの表紙【MagSite1開発日誌】の表紙【MagSite1開発日誌】のコンテンツ全リスト 【MagSite1開発日誌】の入手全リスト 【MagSite1開発日誌】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.