JSONschemaとXSDの同等物を調整するのが難しい

tharndt

問題があり、自分で解決することはできません。だから私はStackOverflowで助けを見つけようとしています。

私はXSDを生成しており、Pythonベースのコンバーターを使用してXSDをJSONスキーマに変換しています。JSONスキーマは、JSONコードを検証するために使用されますが、これについては詳しく説明しません。私の問題は、整数を含む配列(複数形)を含む配列を含む検証するJSONコードがあることです。

JSONコードは次のようになります。

"factors": [  
    [12,3], 
    [1,14]
]

私はこのためのJSONスキーマを書く方法を知っています:

"factors": {
    "items": {
        "$ref": "#/definitions/factorscontent"
    }, 
    "type": "array"
}

...

"factorscontent": {
    "items": {
        "type": "integer"
    },
    "type": "array",        
    "properties": {}
}

これは正常に機能します。しかし、XSDでこの構造を構築する方法がわかりません。「配列内の整数」の問題に直面する方法を知っている人はいますか?

追加する1つのこと:jsonコードが次のようになる場合:

"factors": [ "items":{ [12,3], [1,14] } ] 

「factors-array」の内容を次のように表現できたので問題ありません

<xs:element name="items" type="integer" max0occurs="unbounded"/> 

しかし、内部の配列構造には整数のみが含まれ、要素は含まれていません。

ペトルガルデア

反対票を投じないようにするには、「would」JSONの例をクリーンアップしてください。これ"factors": [ "items":{ [12,3], [1,14] } ]は単に整形式のJSONではないためです。整形式は次のようになります(もちろん、必要なものが反映されるように修正してください。少なくとも、共有したXSDスニペットからの方法でツールが生成します)。

{
    "factors": [
        {
            "items": [ 12, 3 ]
        },
        {
            "items": [ 1, 14 ]
        }
    ]
}

あなたの質問には簡単な答えがあります。XSDの独自のマークアップに依存しない限り、それを行う方法はありません。

XMLでは、データを表現するには何らかのマークアップが必要です。テキストノードと属性には、それらを「保持」するための要素が必要です。XSDでは、を使用し<xsd:list/>て整数の配列をモデル化できます。それでも、それを使用するには、配列の配列にするために(n)(繰り返し)要素が必要です(または、要素を繰り返しコンポジター(通常は<xsd:sequence/>でラップすることもできます)。

この必須要素のため、私が知っているコンバーターは自動的にオブジェクトを作成し(オブジェクトはJSONスキーマドラフトで定義されているとおり)、要素の名前や属性を使用してプロパティを作成します配列の配列にはオブジェクトがないため、プロパティは許可されません。したがって、この種の変換でコアXSD構造に依存することはできません。

XSDからJSDへの変換を実際のXSDに対して3年間行ってきたため、この変換をかなり改良しました。あなたのようなシナリオを実現するために、独自のマークアップを定義しました<xsd:appinfo/>。これは、変換エンジンにプロパティの作成をスキップするように指示し、関連するオブジェクトの作成をスキップします。Pythonベースのパーサーを変更して、ある種の「ヒント」を、私たちが行った方法で、またはパターンを作成することによって(無差別に適用したい場合)考慮されるようにすることをお勧めします。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

セルの高さを調整して、内容物がセルに収まるようにするにはどうすればよいですか?

分類Dev

PythonOOPを理解するのが難しい

分類Dev

Ubuntuで数学とGSLをリンクするのが難しい

分類Dev

速度値を調整するときにC ++の長方形が正しく配置されていませんか?

分類Dev

htmlとcssの要素を調整する

分類Dev

AngularJSの<td>をクリックすると、textAreaが表示され、tdの高さを自動的に調整したいのですが。

分類Dev

SVGを少し調整すると、すべての円が消えるのはなぜですか?

分類Dev

文字列をすばやく分割しようとするのが難しい

分類Dev

行列のこれらのスライス方法の両方がnumpyで同等ではない理由を理解するのが難しい

分類Dev

エンターキーをタブとして使用するのが難しい

分類Dev

やることリストに項目を表示するのが難しい

分類Dev

画面を実行しているときにCentOS6がコンソールの幅を調整するのはなぜですか?

分類Dev

UINavigationControllerとnavigationControllerをすぐに理解するのが難しいre:presentingViewController

分類Dev

文字列を調整する必要があるプロパティのラッパーを作成しようとしています

分類Dev

ggplot2で色と形状を指定する線と点の凡例の混合を取得するのが難しい

分類Dev

adb logcatからの出力を調整し、新しい行ごとにコマンドを実行する方法

分類Dev

キーボードが表示されているときに上面図の高さを調整する

分類Dev

textareaの初期幅を設定することは可能ですが、調整可能なままにしますか?

分類Dev

実装するのが難しいxquery

分類Dev

UIKeyboardFrameEndUserInfoKeyを使用するためのUITextViewフレームの調整が機能しない

分類Dev

右側のメニューを再調整しながら、検索バーとボタンを修正するにはどうすればよいですか?

分類Dev

xpathを使用して要素を特定するのが難しい

分類Dev

PHPエコーの出力を調整しようとしています

分類Dev

このelm関数を理解するのが難しい

分類Dev

オプションの括弧を理解するのが難しい

分類Dev

TableViewCellのSwiftChartsStackBarsをタップするのが難しい

分類Dev

Invokeをモックするのが難しい-WebRequestのBasicHtmlWebResponseObject

分類Dev

2番目のルートを追加するのが難しい

分類Dev

Pythonのエラーを理解するのが難しい

Related 関連記事

  1. 1

    セルの高さを調整して、内容物がセルに収まるようにするにはどうすればよいですか?

  2. 2

    PythonOOPを理解するのが難しい

  3. 3

    Ubuntuで数学とGSLをリンクするのが難しい

  4. 4

    速度値を調整するときにC ++の長方形が正しく配置されていませんか?

  5. 5

    htmlとcssの要素を調整する

  6. 6

    AngularJSの<td>をクリックすると、textAreaが表示され、tdの高さを自動的に調整したいのですが。

  7. 7

    SVGを少し調整すると、すべての円が消えるのはなぜですか?

  8. 8

    文字列をすばやく分割しようとするのが難しい

  9. 9

    行列のこれらのスライス方法の両方がnumpyで同等ではない理由を理解するのが難しい

  10. 10

    エンターキーをタブとして使用するのが難しい

  11. 11

    やることリストに項目を表示するのが難しい

  12. 12

    画面を実行しているときにCentOS6がコンソールの幅を調整するのはなぜですか?

  13. 13

    UINavigationControllerとnavigationControllerをすぐに理解するのが難しいre:presentingViewController

  14. 14

    文字列を調整する必要があるプロパティのラッパーを作成しようとしています

  15. 15

    ggplot2で色と形状を指定する線と点の凡例の混合を取得するのが難しい

  16. 16

    adb logcatからの出力を調整し、新しい行ごとにコマンドを実行する方法

  17. 17

    キーボードが表示されているときに上面図の高さを調整する

  18. 18

    textareaの初期幅を設定することは可能ですが、調整可能なままにしますか?

  19. 19

    実装するのが難しいxquery

  20. 20

    UIKeyboardFrameEndUserInfoKeyを使用するためのUITextViewフレームの調整が機能しない

  21. 21

    右側のメニューを再調整しながら、検索バーとボタンを修正するにはどうすればよいですか?

  22. 22

    xpathを使用して要素を特定するのが難しい

  23. 23

    PHPエコーの出力を調整しようとしています

  24. 24

    このelm関数を理解するのが難しい

  25. 25

    オプションの括弧を理解するのが難しい

  26. 26

    TableViewCellのSwiftChartsStackBarsをタップするのが難しい

  27. 27

    Invokeをモックするのが難しい-WebRequestのBasicHtmlWebResponseObject

  28. 28

    2番目のルートを追加するのが難しい

  29. 29

    Pythonのエラーを理解するのが難しい

ホットタグ

アーカイブ