2009-05-07 5 views
1

最近、XMLを介してクライアントにデータ抽出を提供し始めました。このXMLの構造を定義するスキーマ(XSD)があります。私は要素と属性のドキュメントをスキーマ自体に含めたいと思っています。私が見つけている唯一のことは、非常に面倒な "注釈"と "ドキュメンテーション"タグです。XSDを文書化する手間が省けますか?

だから、このよう読まするシンプルで簡単な何かを取る:

<xs:element name="TransactionType" type="xs:string" /> 

そしてこの醜い混乱で終わる:

<xs:element name="TransactionType" type="xs:string"> 
    <xs:annotation> 
     <xs:documentation> 
      Type of transaction 
     </xs:documentation> 
    </xs:annotation> 
</xs:element> 

はもっと良いものはありますか?

<xs:element name="TransactionType" type="xs:string" description="Type of transaction" /> 

PS:これは単純な固定長のファイルとして、またCSVとしてすでに提供されています。 1つのクライアントがXMLを要求し、XMLを使用したい第2のクライアントがいます。私は文書を求められた。最初にXMLバージョンを開発した最初のクライアントは、XSDがほしいと思っていました。したがって、私は、第2のクライアントに1つの文書(要素を説明する簡単な注釈付きのXSD)を送信したいと考えています。

+0

すべての回答ありがとうございます。私はあなたが否定的な立場をどのように証明しているのか、「そこにはない」ということを正しいものとして受け入れるかどうかはわかりません。 – JohnOpincar

答えて

1

いいえ、ありません。 <xs:annotation><xs:documentation>はすべてあります。

+0

それは残念です。実際にスキーマを読むのが難しくなります。私はおそらく2番目の文書を作成することになります。 – JohnOpincar

+0

誰かがスキーマを読んでいると仮定しているようです。あなたはその仮定を何に基づいていますか? –

+0

私はこの抽出物の潜在的消費者に文書の形で与える唯一の事実であるという事実。 – JohnOpincar

0

XSDは、ドキュメンテーションのために言及したタグを提供します。 私はあなたに同意する、彼らは煩わしく、ファイルをさらに大きくする。

これは不幸にも私たちが持っているものです。

0

はい、これは面倒ですが、残念ながらドキュメント化の唯一の仕組みです。しかし、注釈タグは、多くのニーズを満たすために提供されています。あなたはそこにコンピュータ処理の指示を置くことができます、そこに人間が読める文書を置くことができます。

XSDは、情報を効果的にコンピュータプログラムに伝えるために、より多く設計されています。たとえば、スキーマからコードジェネレータを実行している場合、コードジェネレータは、JavaDocなどのコードの自己文書化、または他の言語と同等のアノテーション要素情報を含めることができます。

また、注釈ドキュメントタグに任意の長さのテキストを含めることもできます。これは、HTMLタグと実際には任意のXMLを含むことができます。これが属性ではなく要素である理由です。

+0

さて、私のXSDはすぐに読むのがとても簡単です。注釈は文字通り4倍大きくなり、もはや人間が読むことができなくなります。私は注釈タグは非常に柔軟であるが、シンプルさの必要性をサーバ化していないと論じていません。 – JohnOpincar

+0

あなたは本当に正しいです。誰もあなたに同意していません。 – Eddie

3

煩雑なアノテーションタグとドキュメンテーションタグを使っても、XSDを簡単に読みやすいHTMLドキュメントファイルに簡単に変換できます。

魔法はxs3pと呼ばれています.XSD(まったく別のXMLです)をきれいに整理された非常に便利なドキュメントHTMLに変換するには相当な量のXSLTファイルです。

無料です。うまくいきます。 :-)

もちろん、注釈/ドキュメントをXSDに追加する必要がありますが、XSDと別のドキュメントファイル(これよりも早く同期が外れる可能性が高い後ほど......)

マルク・

+0

私は不必要な複雑さを避けようとしています。 XSDの設計者がこれを予見できないことは私には驚きです。私は非常にシンプルなXSDを持っています。余分な要素をすべて追加すると、4倍の大きさになります。そして、私はXSLT変換を行う必要があります。私はXSDを単独で送信し、自己文書化することを望んでいました。 – JohnOpincar

+0

XMLベースの世界へようこそ! :-) –

0

私が提案持っている - なぜあなたは、あなたが提案する方法で、すなわちスキーマを書いていないが

<xs:element name="TransactionType" type="xs:string" description="Type of transaction" /> 

とあなたが内部的に使用すると、コンパクトなバージョンを使用し、顧客に変換XSDを配る

<xs:element name="TransactionType" type="xs:string"> 
<xs:annotation> 
    <xs:documentation> Type of transaction </xs:documentation> 
</xs:annotation> 
</xs:element> 

の完全な形式にそれを変換するためにXSLTを通します。

+0

私の希望は、XSDを単独で送信し、それを自己文書化することでした。 – JohnOpincar

関連する問題