簡體   English   中英

如何放松 xsd 中的枚舉以獲取枚舉之外的值

[英]How relax enum in xsd for value outside enum

對不起,如果這是一個愚蠢的問題,但必須問知道這是否可能所以這是 XSD

<xs:simpleType name="PhoneTypeEnum">
    <xs:restriction base="xs:string">
        <xs:enumeration value="Fax"/>
        <xs:enumeration value="Voice"/>
        <xs:enumeration value="Pager"/>
    </xs:restriction>
</xs:simpleType>

放松在下面

  1. 當我們獲得傳真或傳真的值時,驗證不應該失敗並且仍然除了作為正確值的傳真。
  2. 當沒有與傳真、語音或尋呼機匹配的值時,XSD 驗證也不應該失敗,但 go 作為未知值。

這在 XSD 模式驗證中是否可行? 如果不是,那么我們必須在 java 的自定義代碼驗證中執行此操作。

請建議這是否可行?

使用 XSD 1.0 進行大小寫匹配的唯一方法是沿線

<xs:restriction base="xs:string">
  <xs:pattern value="[Ff][Aa][Xx]|[Vv][Oo][Ii][Cc][Ee]|..."/>
</xs:restriction>

使用 XSD 1.1,您可以改用斷言。

但是我不明白您的要求,即如果不滿足條件,驗證不應該失敗。 (從技術上講,驗證永遠不會失敗:它將元素報告為有效或無效。但是,大多數模式處理器並不容易驗證文檔,然后檢查節點以查看哪些有效,哪些無效。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM