朝顔日記

rNote 用の xml を再度見直し

publish
2005-01-17T00:00:00+09:00
tags
はてぶ

rNote デフォルトの xml の Text 要素の名前空間は、xmlns="http://www.w3.org/1999/xhtml" となっているんですが、なんか妙だなと思いつつこれまでは、内部的に使うものだからまぁ動けばよかろうということで放置していました。が、掲示板にて、北村さんにご指摘いただいたのを機に、何とかしてみることにしてみました。なんか改造しないといけないかと考えて、どうやってやるかなぁとか考えていたんですが単に設定を替えて、スキンファイルを直すだけでできました。

これまでは、<Text xmlns="http://www.w3.org/1999/xhtml"> だったのを、<body xmlns="http://www.w3.org/1999/xhtml"> と変えました。それに伴い、ファイル750個くらい置換。これでとりあえず違和感がなくなりました。他の語彙なんかもダブリンコアとかのにしようかなぁ、とか考えてもいるのですが、とりあえず今回はここだけ。

神崎先生のセマンティック・ウェブのためのRDF/OWL入門 をよく読んでからまた考えたいと思います。:p)

[ このエントリへはコメント出来ません ]

この記事へのツッコミ

1: のり (2005-01-17T16:23:41+09:00) nori@noasobi.net
コメントも不調だったのでそこらもついでにテスト
2: りん (2005-01-18T12:54:21+09:00)
名前空間の接頭語が有効になるのは「名前空間を定義したタグの内部」であって、定義してるタグ自体は含まない気が…

<rn:rNote xmlns:rn="http://rinn.e-site.jp/rnote/">
<rn:Title>日記ー<rn:Title>
<rn:Text xmlns="http://www.w3.org/1999/xhtml">


上記のようになってて、単純に rn: が省略されてると考えると判り易いと思う。

…それとも、私、もしかして大きな勘違いしてるのかな?
一度ちゃんと調べてみよう。
3: りん (2005-01-18T13:39:03+09:00)
調べました。
…すみません、どうも私が間違っていたようです。

http://www.w3.org/TR/REC-xml-names/ の 5.2 Namespace Defaulting によると
「デフォルト名前空間は,それが宣言された要素(その要素が名前空間接頭辞をもたない場合)、及びその要素の内部にあるすべての接頭辞がない要素に適用されるものとする。」
という事のようです。

さーて困った、どうしよう…?
4: Ai (2005-01-19T10:45:19+09:00)
>>2-3

I think your example here works well, but the old, current one doesn't. If you want to use XHTML elements WITHOUT prefix, you have to undefault "...rinn.e-site.jp/rnote/" because Text element should be under that namespace, not under the XHTML namespace. So, I think you just have two choices:

1)This is the one I recommend:
<rn:rNote xmlns:rn="http://rinn.e-site.jp/rnote/">
<rn:Text xmlns="http://www.w3.org/1999/xhtml">
<em>any XHTML elements</em>

In here, you need to put "rn" prefix for non-XHTML elements.

2) This is the one I will choose for my CMS tool "Icho":
<rNote xmlns="http://rinn.e-site.jp/rnote/">
<Text>
<em>any XHTML elements</em>

In this file, the em element is not an element defined by XHTML, but by rNote, so that you need to deal with it as one of the elements different from ones in XHTML. Users use it as well as they use in XHTML, though.
5: Ai (2005-01-19T10:59:31+09:00)
Additionally, the name "Text", I think, isn't really appropriate because the word "text" implies more like plain text, not like parsable and markupped text, doesn'it? I would markup a list of metadata, such as rn:Date and rn:Title, as children of a rn:Head element, and change the name rn:Text to rn:Body. Doesn't it make more sense? Example:
<rn:Article xmlns="{XHTML}" xmlns:rn="{rNote}">
<rn:Head>
<rn:Title>Why I'm Using English</rn:Title>
</rn:Head>
<rn:Body>
<p>It is a secret.</p>
</rn:Body>
</rn:Article>
6: りん (2005-01-19T13:06:58+09:00)
いや、「困った、どうしよう…?」というのは、「正しい書き方が判らない」と言う意味ではなく「ああ、間違ったものをいっぱい配布してしまった、どうしよう…?」という意味です。

まぁ、この件には関係なく、どっちにしろ次バージョンではCDATAセクションを認識出来るようにして

<Text><![CDATA[
(本文)
]]></Text>

みたいな書き方が出来るようにしようと思ってました。現状だと記事ファイルを Well-formed にするには本文も xhtml にしないといけないのでー
xmlにコダワル方にはこの記述を推奨という事にすれば万事解決かな?:-)
7: のり (2005-01-19T19:35:37+09:00) nori@noasobi.net
一度配布して、形式がすでに流通しているんで、形式の変更は混乱を伴いそうで難しい問題ですね。しかし、名前空間を入れて運用している人はどのくらいいるんでしょうか。入れている人なら自力で何とかできるような気もします。
CDATA セクションですが、試してみたところ、現状でも使えるようです。って、考えていることが違うのかな。とにかく、次期バージョンが楽しみです。
8: のり (2005-01-19T19:39:53+09:00) nori@noasobi.net
ところで別件ですが、
<html xml:lang="ja" xmlns="http://www.w3.org/1999/xhtml">
みたいのだと、autolink が誤動作しているようですね。
9: Ai (2005-01-20T03:29:33+09:00)
I don't think giving a CDATA section is a good way because any parser cannot parse CDATA section as XML. I know you use PHP to read the XML file, but other people might use XSLT, instead. In my opinion, thus, advantages of XML will die if you put CDATA section in it. If you really want to use CDATA, I recommend just using plain text (CSV? CST? anyway comma-separated text) that needs less amount of text than XML need.
10: Ai (2005-01-20T03:40:22+09:00)
>>6
> 記事ファイルを Well-formed にするには本文も xhtml にしないといけないので
I don't really understand this part here. Well-formed XML means just parsable text under the correct grammer of XML, I believe.

Additionaly, I don't know why you don't take the first choice, where you put rn prefix with rNote vocabulary. Is there any problem with it, or you just don't like prefix?