Java 如何在XSD中定义Hashmap?

Java 如何在XSD中定义Hashmap?,java,json,xml,xsd,jaxb,Java,Json,Xml,Xsd,Jaxb,我试图从我得到的json响应中生成一个xsd文件,然后使用该xsd生成JAXB类。我的问题是json的格式无法转换为xsd。这是我的json: { "result1":[{"010201":[3,2,0,4,3,4]},{"010202":[1,6,3,2,2,2]},{"010203":[2,3,3,4,4,0]}], "result2":[1,6,3,2,2,2], "result3":[{"010201":[3,2,0,3,4]},{"010202":[1,6,3,2,2]},{"0102

我试图从我得到的json响应中生成一个xsd文件,然后使用该xsd生成JAXB类。我的问题是json的格式无法转换为xsd。这是我的json:

{
"result1":[{"010201":[3,2,0,4,3,4]},{"010202":[1,6,3,2,2,2]},{"010203":[2,3,3,4,4,0]}],
"result2":[1,6,3,2,2,2],
"result3":[{"010201":[3,2,0,3,4]},{"010202":[1,6,3,2,2]},{"010203":[2,3,4,4,0]}],
"result4":[1,4,6,4,1],
"result5":[{"010201":34},{"010202":12},{"010203":78}],
"result6":41
}
以下是上述xml格式的json:

 <?xml version="1.0" encoding="UTF-8" ?>

<result1>
    <010201>3</010201>
    <010201>2</010201>
    <010201>0</010201>
    <010201>4</010201>
    <010201>3</010201>
    <010201>4</010201>
</result1>
<result1>
    <010202>1</010202>
    <010202>6</010202>
    <010202>3</010202>
    <010202>2</010202>
    <010202>2</010202>
    <010202>2</010202>
</result1>
<result1>
    <010203>2</010203>
    <010203>3</010203>
    <010203>3</010203>
    <010203>4</010203>
    <010203>4</010203>
    <010203>0</010203>
</result1>

<result2>1</result2>
<result2>6</result2>
<result2>3</result2>
<result2>2</result2>
<result2>2</result2>
<result2>2</result2>
<result3>
    <010201>3</010201>
    <010201>2</010201>
    <010201>0</010201>
    <010201>3</010201>
    <010201>4</010201>
</result3>
<result3>
    <010202>1</010202>
    <010202>6</010202>
    <010202>3</010202>
    <010202>2</010202>
    <010202>2</010202>
</result3>
<result3>
    <010203>2</010203>
    <010203>3</010203>
    <010203>4</010203>
    <010203>4</010203>
    <010203>0</010203>
</result3>
<result4>1</result4>
<result4>4</result4>
<result4>6</result4>
<result4>4</result4>
<result4>1</result4>
<result5>
    <010201>34</010201>
</result5>
<result5>
    <010202>12</010202>
</result5>
<result5>
    <010203>78</010203>
</result5>
<result6>41</result6>

3.
2.
0
4.
3.
4.
1.
6.
3.
2.
2.
2.
2.
3.
3.
4.
4.
0
1.
6.
3.
2.
2.
2.
3.
2.
0
3.
4.
1.
6.
3.
2.
2.
2.
3.
4.
4.
0
1.
4.
6.
4.
1.
34
12
78
41

在为result2、result4、result6元素创建复杂类型时,我没有遇到任何问题。但是result1、result3和result5有一个整数数组。如何为此创建xsd?有人能帮忙吗?

考虑尝试使用XSD生成XML,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <result1>
        <entry>
            <key>010201</key>
            <value>
                <val>3</val>
                <val>2</val>
                <val>1</val>
            </value>
        </entry>
        <entry>
            <key>010201</key>
            <value>
                <val>3</val>
                <val>2</val>
                <val>1</val>
            </value>
        </entry>
    </result1>
    <result2>
        <value>
            <val>3</val>
            <val>2</val>
            <val>1</val>
        </value>
    </result2>
    <result3>
        <entry>
            <key>010201</key>
            <value>
                <val>3</val>
                <val>2</val>
                <val>1</val>
            </value>
        </entry>
        <entry>
            <key>010201</key>
            <value>
                <val>3</val>
                <val>2</val>
                <val>1</val>
            </value>
        </entry>
    </result3>
    <result4>
        <value>
            <val>3</val>
            <val>2</val>
            <val>1</val>
        </value>
    </result4>
    <result5>
        <entry>
            <key>010201</key>
            <value>2</value>
        </entry>
        <entry>
            <key>010201</key>
            <value>2</value>
        </entry>
     </result5>
</root>

010201
3.
2.
1.
010201
3.
2.
1.
3.
2.
1.
010201
3.
2.
1.
010201
3.
2.
1.
3.
2.
1.
010201
2.
010201
2.

对于上述情况,xsd将更简单。如果值发生变化,将值保留为XML标记是不可行的。

XSD用于定义XML文档而不是json的内容。或者我错误地理解了这个问题。@dc.sashwat,json只是一种数据格式,请将上述内容视为xml。我们可以将其定义为xml格式。我对问题进行了编辑,将xml也包括在内。您的“xml格式”不是xml,因此它是无用的(不允许使用数字元素名称)。如果某个转换器正在生成该格式,那么该转换器是无用的。扔掉它,找一个更好的。@MichaelKay好吧,忘掉xml。我知道数字名称是不允许的。这只是一个例子。当人们发布错误的东西时,人们的直接反应是错误是问题的核心。所以不要这样做!这不是动态的!如果您的数据格式不是通用的,或者无法使其成为通用的,请使用字符串中的xsd:any或cdata部分来定义您的数据。无论如何,您提供的XML都不是泛型的:D。它是一个XML文档。现在还不清楚你的初衷是什么。我正试图帮助用户创建他的XSD。用户似乎能够编写自己的XSD,我建议使用XML格式,他可以为其创建XSD。在我看来,他的解决方案的方向是不正确的,我试图为xml提供替代方案。xsd的通用性将取决于数据,结果1、结果2等是否具有相同的格式。