1
非マーシャリング中にJAXBによって生成されたJavaでminLength
制約が強制されないのはなぜですか?XSDで空のXML要素を防止し、JAXBを使用して検証する方法は?
私は、次の要素
<subHeader seqno="1"><![CDATA[sub header1]]></subHeader>
を持っていると私はそのようなこの
<subHeader seqno="2" />
現在のXSDとして空要素、予防するために私のXSDをしたいと思います:
<xsd:element name="subHeader" type="subHeaderType" minOccurs="0" maxOccurs="unbounded">
</xsd:element>
<xsd:complexType name="subHeaderType">
<xsd:simpleContent>
<xsd:extension base="NotEmpty">
<xsd:attribute name="seqno" type="xsd:string" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:simpleType name="NotEmpty">
<xsd:restriction base="xsd:string">
<xsd:minLength value="1"></xsd:minLength>
<xsd:whiteSpace value="collapse"></xsd:whiteSpace>
</xsd:restriction>
</xsd:simpleType>
あなたの返信をありがとう、しかし、アンマーシャリングした後も、まだjaxb-xjc beanのseqno = 2属性を見ることができ、unmarshallオブジェクトの後に期待される出力である 'minLength'制約/ getSuHeader()はseqno = 1のデータのみを持ち、seqno = 2ではなく、Plsが私を助けます。 –
ご回答いただきありがとうございます。私はjaxb-xjc beansをxsdからunmarshallに生成していますが、unmarshallを行った後でもまだjaxb-xjc beanのseqno = 2属性が表示されています。 'minLength'制約/制約、unmarshall後の私の予想される出力object.getSuHeader()はseqno = 1のデータのみを持ち、seqno = 2ではなく、Plsが私を助けます。 –
あなたは本当に、あなたの***質問は本質的にJAXB ***についてのことです。回答が更新されました。質問が更新されました。ありがとう。 – kjhughes