私はツールをコーディングしましたが、ツールの出力はtext
形式です。例えば、ここでは印刷機能は次のとおりです。ここXML出力を作成する
(* in Shelf.ml *)
let print (chan: out_channel) (x: t) : unit =
Printf.fprintf chan "Shelf:";
List.iter (Book.print chan "%a\n") x
(* in Book.ml *)
let print (chan: out_channel) (x: t) : unit =
Printf.fprintf chan "Book: %s, %d, %s" x.name x.year x.abstract
がtext
として出力例です:
Shelf:
Book: LOTR, 1954, begin end
Book: The Hobbit, 1937, nice book
今、私はまた、出力XML
フォーマットすることを決定しました。そのメリットは、私の出力を入力として受け取る他のツールとのより良いコミュニケーションを得ることです。たとえば、出力をウェブページとして表示する必要があるかもしれません。またはいくつかのGUIが私の出力を受け取り、より良いレイアウトを作るかもしれません。次のように
XML
ように、出力例が見えます:
<shelf>
<book name="LOTR">
<year>1954</year>
<abstract>begin end</abstract>
</book>
<book name="The Hobbit">
<year>1937</year>
<abstract>nice book</abstract>
</book>
</shelf>
私の質問は、私はXML
出力のこの種を作るためにOCamlのプログラムを開発する方法、ありますか?たとえば、各モジュールに追加する必要がありますprint_xml
ハードコードタグを文字列として使用しますか?
人はXmlmとMarkupを指します。文字列タグをハードコーディングする代わりにこれらのモジュールを使用する必要がありますか?これらのモジュールを使用する利点は何ですか?
どのように開発するかはあなた次第ですか?ここでコーディングの質問を見るのは難しいですが、ライブラリを使うべきかどうかを尋ねているようですが、それはOCamlに固有のものではありません。それはすべての言語の一般的なことです。 –
質問は「ハードコーディングと比較して、これらの2つのモジュールを使用する利点は何ですか?」です。これらのモジュールを知っている人はあまり一般的でない質問を考えず、貢献するためにいくつかの正確な要素を持っています... – SoftTimur
次に、主観的な答えが1つあります。私は両方を使用しました。マークアップは理解しやすく、使いやすくなっています。 –