私のスキーマのxsd:unique
制約は、いくつかの要素の主キーと外部キーを定義します。xsd:Javaクラス内でユニーク
スキーマはエラーをスローしませんが、
Javaクラスxsd:unique
を生成中は追加されません。
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="urn:schemas-microsoft-com:xml-msdata" schemaLocation="msdata.xsd" />
<xsd:element name="root">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="subroot">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" name="set">
<xsd:complexType>
<xsd:sequence>
<xsd:any processContents="lax" />
<xsd:choice>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="Held">
<xsd:complexType>
<xsd:attribute name="_attr1" use="required" type="xsd:integer" />
<xsd:attribute name="_attr2" use="required" type="xsd:integer" />
</xsd:complexType>
</xsd:element>
<xsd:element maxOccurs="unbounded" name="Asses">
<xsd:complexType>
<xsd:attribute name="_attr2" use="required" type="xsd:integer" />
<xsd:attribute name="_attr3" use="required" type="xsd:NCName" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
<xsd:unique name="PK_Held" msdata:PrimaryKey="true">
<xsd:selector xpath="xsd:Held"></xsd:selector>
<xsd:field xpath="@_attr1"></xsd:field>
</xsd:unique>
<xsd:unique name="PK_Asses" msdata:PrimaryKey="true">
<xsd:selector xpath="xsd:Asses"></xsd:selector>
<xsd:field xpath="@_attr2"></xsd:field>
</xsd:unique>
<xsd:keyref name="FK_Held_Asses" refer="PK_Asses">
<xsd:selector xpath="xsd:Held"></xsd:selector>
<xsd:field xpath="@_attr2"></xsd:field>
</xsd:keyref>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
JAXBは検証ルールを強制しません。検証規則を適用するには、検証を有効にしてXMLを解析するときにXSDスキーマを指定する必要があります。 – Andreas
@アンドレアス私は、コメントではなく答えとしての資格があると思います。おそらく、Schemaインスタンスを作成してアンマーシャラーに設定する方法について少しスニペットで投稿してください。 –
ありがとうございましたAndreas、もう一つの追加情報---これはxmlを提供しているベンダーです。私たちはそこからスキーマを生成しました。彼らはxml自体にユニークな制約を送信しているので、解析は ''タグで失敗します。 –
thiagu