私は現在、C# で XBRL インスタンス ドキュメントの作成と検証に取り組んでおり、XBRL インスタンス スキーマ ファイルに関するいくつかの問題に遭遇しました。
http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd
.NET スキーマ バリデータによると、スキーマが無効です。次の例外がスローされます。
System.Xml.Schema.XmlSchemaException: If ref is present, all of <complexType>, <simpleType>, <key>, <keyref>, <unique>, nillable, default, fixed, form, block, and type must be absent.
XML スキーマ定義ツール (Xsd.exe) を使用してスキーマのクラス表現を生成しようとすると、同じ例外が発生します。
XBRL は非常に多くのアプリケーションで使用されており、Web 上でこれに関する情報をあまり見つけることができないため、これには驚きました。ここでのかなり古い議論は、検証に使用されるツールに依存することを示唆しています:
http://www.xml.com/cs/user/view/cs_msg/1849
他のスキーマバリデーターは文句を言わないので、これは正しいようです。XMLSpy、XML コピー エディター、および w3 独自のバリデーター
http://www.w3.org/2001/03/webdata/xsv#hlp-addr
XMLFox が .NET と同じ問題を報告するのに対し、問題なくスキーマを検証します。
だから私の質問は:
- XBRL インスタンスのスキーマは有効ですか? スキーマ仕様だと思います。不明確な場合があるため、別のツールの作成者は別の方法で解釈します。
- .NET でスキーマを操作したい場合はどうすればよいですか? プログラマーとして、検証エンジンのルールを何らかの方法で変更できますか? System.XML.Schema の検証メカニズム以外に可能性はありますか? おそらく、Java の世界では Xerces などのサードパーティ製ツールでしょうか?
ありがとう