image

  • フォト Amazonギフト券
    ※この時計の時刻は、閲覧しているパソコンのものであり、必ずしも正確な時間とは限りません

検索

最近のトラックバック

無料ブログはココログ

« ピックアップ:内定切りの次は試用期間切り、牛丼「すき家」のアルバイトは業務委託であり残業代は発生しない、etc... | トップページ | ruby でEDINETの2009年のXBRLサンプルデータをCSV化 »

2009-03-09

ruby で DSL (その2)

http://svn.sourceforge.jp/view/trunk/Edinet/tools/parser/?root=ruby-xbrl
に parser_schema.rb を commit した。

この中では、メイン処理は次のようになっている。

  xml = '../data/td-net/081220090203088072/tdnet-qcedjpfr-33500-2008-11-30-01-2009-02-20.xsd'

  xsd = Xsd.new.parse(xml)

  if xsd.has_element?('ResearchAndDevelopmentExpense_Div_OperatingRevenue_OneYearDelta')
    pp xsd.ResearchAndDevelopmentExpense_Div_OperatingRevenue_OneYearDelta
  end

ここで指定している xsd ファイルでは、1つの element だけが定義されている。
そして このプログラムからの出力は、こんなふうになる。

#<Element:0x07fe66c
@id=
  :"tdnet-qcedjpfr-33500_ReversalOfAccumulatedImpairmentLossOnLeasedAssetsOpeCF",
@name=:ReversalOfAccumulatedImpairmentLossOnLeasedAssetsOpeCF,
@nillable=:true,
@periodtype=:duration,
@substitutiongroup=:"xbrli:item",
@type=:"xbrli:monetaryItemType">

つまり、このプログラムでは、
xsd ファイルを処理して、あるインスタンスを得るのだが、
そのインスタンスは、
 1. xsd ファイル中で定義された element 名を名前に持つ method が定義されている。
   2. その method の返値は、 Element というクラスのインスタンスであり、
  該当する element の属性を保持している。
のである。

いまは、タクソノミーの import 処理をしていないし、
各種リンクベースも処理していない。
でも、これらを クラスの多重継承、複合として処理し、
かつ、XBRL インスタンスファイルの対しても行うなら、
XBRL文書から ruby クラス/インスタンスを生成できたことになる。

« ピックアップ:内定切りの次は試用期間切り、牛丼「すき家」のアルバイトは業務委託であり残業代は発生しない、etc... | トップページ | ruby でEDINETの2009年のXBRLサンプルデータをCSV化 »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/184434/44297246

この記事へのトラックバック一覧です: ruby で DSL (その2):

« ピックアップ:内定切りの次は試用期間切り、牛丼「すき家」のアルバイトは業務委託であり残業代は発生しない、etc... | トップページ | ruby でEDINETの2009年のXBRLサンプルデータをCSV化 »

mokuji

2013年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

google

  • twitter
  • __
  • _
    Googleボットチェッカー

合わせて読む

  • 合わせて読む
    フィードメーター - katoy: cocolog あわせて読みたい

リンク