XSDからのXMLの生成は、人々が期待するものがXSDでキャプチャすることができない可能性があるため、非常に難しい場合があります。
QTAssistant(私はそれに関連付けられています)は、サンプルXML作成に関して非常に広範な機能を備えています。
関連するmaxOccursが1より大きい場合、最も単純な(そして曖昧な)(グラフィカルなXSDビジュアライザの要素を右クリックすると利用可能)は、2つの要素を作成することができます。
しかし、XMLがずれることがあります:1フィールド日時を命名していることだけであるため、スキーマのようにそれを定義した場合、それは、生成したテキストノードは、有効な日付時刻値になりますという意味ではありません文字列。 (あなたのスキーマがxsd:choice
を使用している場合)ツールはまた、唯一など、選択肢の1を作成します
QTAssistantは、ユーザーに生成されたサンプルに対する最終的な制御を与える追加のメタデータを利用することができます。メタデータアイテムを使用してキャプチャされた組み合わせを実行することで、何千ものXMLを作成することもできます。 (これらのシナリオに興味がある場合は、サポートサイトでご連絡ください)。
XMLからJSONへの変換に関して、QTAssistantは繰り返しフィールドのXMLをJSONに正しく変換することもできます。このXMLを考える:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Sample XML generated by QTAssistant (http://www.paschidev.com) -->
<fundamo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:common="http://www.myorg.com/xsd/gen_fin">
<response>
<common:code>code1</common:code>
<common:description>description1</common:description>
</response>
<transaction>
<transactionRef>transactionRef1</transactionRef>
<dateTime>dateTime1</dateTime>
<userName>userName1</userName>
</transaction>
</fundamo>
対応するJSONは次のとおりです。
{
"response": {
"code": "code1",
"description": "description1"
},
"transaction": [
{
"transactionRef": "transactionRef1",
"dateTime": "dateTime1",
"userName": "userName1"
}
]
}
あなたはそのトランザクションに気づくことは、XMLは要素のみの1であっても、配列です。この変換は、すべてのコンテンツに対して定義されたXSDを持っている限り、有効なXMLに対して機能します。過去2年以上にわたり、私たちはこれを "XSD対応のJSON変換"と呼んでいます。また、大文字と小文字を区別するために、大文字と小文字を区別するなど、大文字と小文字の変換方法を定義することもできます。
あなたが無料のツールのためにしているか、自分自身を記述する場合、私はあなたが興味を持っている唯一の特定の機能に対処するためのインスピレーションの源としての自由な評価を使用することができると確信しています。