2010-12-09 3 views
1

protobuf enum 내에서이 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 enum은 이름이 정수이지만 마지막 몇 개의 이름은 barf가됩니다. 당신은 당신의 .proto/DTO 층에 이름을 조정할 필요가있을 것이다, 그러나 그것은 고통

"EQ" 사이 "=", "LE""<"을 명확하게해야 할 것입니다하지만 당신은 확실히 .proto에서 비슷한 을 매핑 할 수 있습니다.

작동하는 문자열은 저장하지만 바이트 수는 더 많습니다. 이 많지 않습니다. (문자열 길이의 경우 1 바이트에 더하여 char 데이터의 경우 1-4 바이트, 열거 형의 경우 1 바이트).

+0

오케이, 그렇게 생각했습니다. 이것은 대체 할 프로토콜의 "표준"헤더의 일부입니다. 따라서 추상화하고 클라이언트 용으로 인코딩하는 래퍼를 만드는 것이 쉽습니다. – oluies

관련 문제