Строковое ограничение внутри protobuf - PullRequest
1 голос
/ 10 декабря 2010

Могу ли я представить это перечисление XSDSchema / ограничение String в перечислении 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>

1 Ответ

2 голосов
/ 10 декабря 2010

.proto перечисления называются целыми числами, но обратите внимание, что последние несколько имен будут barf. Вам необходимо настроить имена в вашем слое .proto / DTO, но было бы трудно иметь разногласия между "EQ" и "=", "LE" и "<"

Но вы можете отобразить что-то подобное в .proto, конечно.

Если вы храните строку, которая будет работать, но будет больше байтов. Не много больше (1 байт для длины строки плюс 1-4 байта для данных char, против 1 байта для перечислений).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...