2010-11-24 12 views
1

のIを作成するために取得します。私はコンテンツを持たないタグを作成したいのです。私はブログを使用している場合 HOWTOは、XMLを作成するために、ビルダー:: XmlMarkupを使用してM、Builderは<tag></tag>代わり<tag/>

xml.tag do 
end 

は、私は私が

<tag></tag> 

必要なものを得るが、私はそれが

xml.mytag 

短く、これは私に

<mytag/> 

を与えたいが、私はしたいです

<mytag></mytag> 

オプションとして渡す必要があります。

よろしく甲斐

+1

は、なぜあなたは代わりに '' 'の' をしたいですか?出力はXMLなので、下流のアプリケーションは違いを知らないでください。 – LarsH

答えて

2

だけパラメータとして空の文字列を渡します。 xml.mytag('')

+1

どうやらこれはちょうどこの試みた(?もう)は動作しませんし、Builderは、明らかに、スマートになろうとしていると作成されます '' 代わりに – wich

2

は、なぜあなたは<mytag></mytag>代わりの<mytag/>たいです?出力はXMLなので、下流のアプリケーションは違いを知らないでください。

Infoset仕様(Appendix D point 7)によると、「空要素の2つの形式の違い:<foo/><foo></foo>」はXML情報セットでは表現されていません。

これはあなたの「どのように」という質問に答えていませんが、あなたが実際にあなたが何をしようとして実行する必要がないことを発見した場合、それが難しく、不要な野生のガチョウの追跡からあなたを救うことがあります。

+2

問題はDatev(ドイツ最大の会計システムサプライヤ)が私にこれを強制することです。私は彼らが私のために彼らのAPIを変えるとは思わない;) – toy

+1

@toy:理解されている。それはのためのアプリケーションの動作を変更することではないでしょうが、*あなた* ...彼らはXMLを消費すると主張するが、実際に彼らはXMLが自分の道をフォーマットし必要とするように、バグを持っているので、それは次のようになります。誰かに教えてください。また、仕様書に「空の要素の短い形式が許可されていない(または別の何かを意味する)」と指定されていない限り、API自体は変更されません。しかし、私は理解しています、現実は彼らは明日それを修正するつもりはない! – LarsH

1

OK空の文字列は、別の1行の方法は、私が見つけた空のブロックで、素敵です。

xml.mytag{} 
関連する問題