コンテンツへスキップ
ものがたり
戻る

n v d l

何となくNVDLの実装よりRELAX NG実装のbugfixに終始してしまった気がしなくもない。現在もむしろそっちではまっている。けど、とりあえず何も動かせるコードが無かった先週よりはずっとイイ感じだ。ADO.NETは新しいインド人ハッカーの人がたくさん直してくれてだいぶ安定してきたし、そっちは1日8時間程度にしておいて、NVDL実装を先にやっつけてしまおうかなあ。

とりあえず明らかにまだ出来ていないこと:

出来て無さそうなこと:

それって言い換えれば何も出来てないんじゃ…?

…よし、とりあえずxhtml+rdfの奴は通るようになった。これは実際にはdispatch1回(2回?)しかないから何もしてないようなもんなんだよね…。次はxformsInXhtmlだけど、コレを直すにはRELAX NGまわりのバグを直さなければ。ていうかもう7時だし…

サンプルコードはこんな感じ。実際にはもうちょっと調整が必要だとおもうけど…

using System;  

using System.IO;  

using System.Xml;  

using Commons.Xml.Relaxng;  

using Commons.Xml.Relaxng.Rnc;  

using Commons.Xml.Nvdl;

public class Test
{
public static void Main (string [] args)
{
string target = args [0];

// prepare NvdlRules for NVDL
XmlTextReader nvdlReader = new XmlTextReader (target + “.nvdl”);
RelaxngPattern p = RncParser.ParseRnc (new StreamReader (“nvdl.rnc”));

RelaxngValidatingReader rvr = new RelaxngValidatingReader (
nvdlReader, p);
NvdlRules rules = NvdlReader.Read (rvr);

// validate instance against NVDL script.
XmlReader xr = new XmlTextReader (target + “.xml”);
NvdlValidatingReader vr = new NvdlValidatingReader (xr, rules);
XmlDocument doc = new XmlDocument ();
doc.Load (vr);
doc.Save (Console.Out);
}
}

やーん。xformsInXhtml.rngで参照されているxforms.rngって実は存在しないじゃーん。どうすんべ。


この記事を共有:

前の記事
次の記事
2005-02-07