0
私は多くの話題を調べましたが、まだ助けが必要です。XMLスキーマ - 検証に列挙型でuniqueを使用できますか?
それぞれが特定の値を持つ5つの要素を持つ必要があるXMLを検証する必要があります。彼らは繰り返すことはできません。
XMLスニペット: ...
<logger name="br.com.xxxx" additivity="false">
<level value="info"/>
<appender-ref ref="FILE-rolling"/>
</logger>
<logger name="br.com.web.aq" additivity="false">
<level value="info"/>
<appender-ref ref="FILE-rolling"/>
</logger>
<logger name="br.com.data.connector" additivity="false">
<level value="info"/>
<appender-ref ref="FILE-rolling"/>
</logger>
<!--FACES LOGGER-->
<logger name="javax.faces" additivity="false">
<level value="info"/>
<appender-ref ref="FILE-rolling"/>
</logger>
<!--MYFACES LOGGER-->
<logger name="org.apache.myfaces" additivity="false">
<level value="info"/>
<appender-ref ref="FILE-rolling"/>
</logger>
これまでのところ、ちょうどこのような値の一覧、検証私のxsd:
<xsd:element name="configuration">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="3" maxOccurs="3" ref="property"/>
<xsd:element minOccurs="1" maxOccurs="1" ref="appender"/>
<xsd:element minOccurs="5" maxOccurs="5" name="logger">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="level"/>
<xsd:element ref="appender-ref"/>
</xsd:sequence>
<xsd:attribute name="additivity" type="xsd:string" use="required" fixed="false"/>
<xsd:attribute name="name" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:token">
<xsd:enumeration value="br.com.xxxx"/>
<xsd:enumeration value="br.com.web.aq"/>
<xsd:enumeration value="br.com.connector"/>
<xsd:enumeration value="javax.faces"/>
<xsd:enumeration value="org.apache.myfaces"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
<xsd:unique name="uniquity">
<xsd:selector xpath="logger"/>
<xsd:field xpath="@name"/>
</xsd:unique>
</xsd:element>
しかし、それは方法を、 XMLには、同じ名前の2つの「ロガー」を持つことができます。
* xsdをユニーク制約で更新しました。この検証作業を行うための何かがありません。
:ロガー要素の親のための要素宣言に一意性制約:ちょうどXSを追加しますtクリア。 –
xsdスニペットを更新しました。すべての助けをありがとう。 – fabionicastro