2010-12-09 51 views
1

我可以在protobuf枚舉中表示這個XSDSchema枚舉/字符串限制嗎?protobuf中的字符串限制

<s:element maxOccurs="1" minOccurs="1" name="Condition"> 
    <s:simpleType> 
    <s:restriction base="s:string"> 
     <s:enumeration value="EQ" /> 
     <s:enumeration value="NE" /> 
     <s:enumeration value="GT" /> 
     <s:enumeration value="LT" /> 
     <s:enumeration value="GE" /> 
     <s:enumeration value="LE" /> 
     <s:enumeration value="LK" /> 
     <s:enumeration value="=" /> 
     <s:enumeration value="!=" /> 
     <s:enumeration value="&gt;" /> 
     <s:enumeration value="&lt;" /> 
     <s:enumeration value="=&gt;" /> 
    </s:restriction> 
    </s:simpleType> 
</s:element> 

回答

2

.proto枚舉被命名爲整數,但請注意,最後幾個名稱將會出現。您需要在您的.proto/DTO層來調整的名字,但它會一個痛苦和"LE""<"

"EQ"之間"="

的歧義但是你可以映射.proto類似東西 ,確保萬無一失。

如果你存儲一個可以工作的字符串,但會有更多的字節。不是許多更多(字符串長度爲1個字節加上char-data的1-4個字節,而enums爲1個字節)。

+0

好吧,我這麼認爲。這是我正在替換的協議中的「標準」標頭的一部分,所以我認爲很容易將它抽象出來並創建一個爲客戶端編碼的包裝器。 – oluies 2010-12-10 07:43:18