0
我看了很多話題,還需要一些幫助。XML架構 - 我可以使用枚舉的唯一驗證進行驗證嗎?
我需要驗證一個XML,它必須包含5個元素,每個元素都有一個特定的值。他們不能重複。
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。缺少一些東西來使這個驗證工作。
我不知道是什麼的一部分,「把它添加到元素聲明爲記錄器元素的父」 ISN」清除。 –
剛剛更新了xsd片段。感謝所有的幫助。 – fabionicastro