私はかなり独特で、おそらく取るに足らないものを見つけました。XSDでタイプがの要素を定義し、をxs:long
設定せずminOccurs="0"
にJAXBを介して実行すると、結果の要素はタイプになりlong
ます。ただし、minOccurs="0"
XSD要素で設定すると、結果の要素はタイプになりLong
ます。long
とLong
DataTypeの違いに注意してください
今、私が行っている作業で、いくつかのif (thisVariable == null)
テストを行いますが、当然、long
nullにすることはできません。Long
できる。
*私が知りたいのは、これは結果の変数間にこの違いを引き起こすJAXBのバグですか、それともこれらの結果の変数がそれらのように出てくることを目的としていますか?*
これが私がテストに使用したファイルです:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<xs:schema id="ReportRequestWrapper" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="ReportRequestWrapper">
<xs:complexType>
<xs:sequence>
<xs:element name="queryId" type="xs:long" minOccurs="0" />
<xs:element name="reportId" type="xs:long" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
queryId
そしてreportId
次のように出てきました:
public class ReportRequestWrapper {
protected Long queryId;
protected Long reportId;
MinOccurs = "0"を省略した場合、
<xs:element name="queryId" type="xs:long" />
<xs:element name="reportId" type="xs:long" />
結果はになりました
public class ReportRequestWrapper {
protected long queryId;
protected long reportId;
私はこれがかなり好奇心が強いことに気づき、これについてもう少し情報が欲しかった。