[英]ASN.1 schema compatibility
ASN.1
模式是否支持某種形式的明確定義的向后/向前兼容的更改集?
我使用了protobuf
,它允許以使用舊模式的客戶端繼續正常工作的方式更改模式。 ASN.1
是否也一樣,我的意思是必須遵循一些規則以確保他不會破壞使用舊模式的客戶端?
特別是可以將新的(可能是可選的)字段添加到SEQUENCE
或添加/刪除CHOICE
嗎? 嘗試谷歌搜索,但沒有找到關於此的適當文章。
是的,ASN.1 支持前向/后向功能。 但是,它從原始定義開始。 例如,對於一個序列,如果客戶端是基於以下定義構建的
NetworkLocation ::= [APPLICATION 156] SEQUENCE
{
recEntityCode RecEntityCode OPTIONAL,
callReference CallReference OPTIONAL,
locationArea LocationArea OPTIONAL,
cellId CellId OPTIONAL,
... -- future versions may add fields here
}
它應該構建在一個 was 中,它接受更多字段作為省略號所在的這種類型的一部分。 自然,在規范的任何未來版本中,附加字段應該是可選的。 CHOICE 和 ENUMERATED 類型的定義也是如此。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.