Hessian 2.0 Grammar
From Resin 3.0
(Difference between revisions)
m (Hessian 1.1 Grammar moved to Hessian 2.0 Grammar) |
|||
Line 26: | Line 26: | ||
::= list | ::= list | ||
::= map | ::= map | ||
+ | ::= class | ||
+ | ::= instance | ||
header ::= H b1 b0 header-string object | header ::= H b1 b0 header-string object | ||
Line 33: | Line 35: | ||
list ::= V type? length? object* z | list ::= V type? length? object* z | ||
+ | ::= [x10 - x1f] <int> object* | ||
+ | |||
map ::= M type? (object object)* z | map ::= M type? (object object)* z | ||
+ | |||
remote ::= r type? string | remote ::= r type? string | ||
type ::= t b1 b0 type-string | type ::= t b1 b0 type-string | ||
+ | ::= T <int> | ||
+ | |||
length ::= l b3 b2 b1 b0 | length ::= l b3 b2 b1 b0 | ||
− | ::= | + | ::= x0b b0 |
− | ::= | + | ::= x0c b1 b0 |
null ::= N | null ::= N | ||
+ | |||
boolean ::= T | boolean ::= T | ||
::= F | ::= F | ||
int ::= I b3 b2 b1 b0 | int ::= I b3 b2 b1 b0 | ||
− | ::= | + | ::= [x80 - 0xcf] |
− | ::= | + | ::= x01 b0 |
− | ::= | + | ::= x02 b1 b0 |
long ::= L b7 b6 b5 b4 b3 b2 b1 b0 | long ::= L b7 b6 b5 b4 b3 b2 b1 b0 | ||
− | ::= | + | ::= [x20 - x3f] |
− | ::= | + | ::= x03 b0 |
− | ::= | + | ::= x04 b1 b0 |
− | ::= | + | ::= x05 b3 b2 b1 b0 |
double ::= D b7 b6 b5 b4 b3 b2 b1 b0 | double ::= D b7 b6 b5 b4 b3 b2 b1 b0 | ||
− | ::= | + | ::= x06 |
− | ::= | + | ::= x07 |
− | ::= | + | ::= x08 b0 |
+ | ::= x09 b1 b0 | ||
+ | ::= x0b b3 b2 b1 b0 | ||
+ | ::= x0c b1 b0 | ||
date ::= d b7 b6 b5 b4 b3 b2 b1 b0 | date ::= d b7 b6 b5 b4 b3 b2 b1 b0 | ||
string ::= (s b1 b0 string-data)* S b1 b0 string-data | string ::= (s b1 b0 string-data)* S b1 b0 string-data | ||
+ | ::= [xd0 - xef] string-data | ||
xml ::= (x b1 b0 xml-data)* X b1 b0 xml-data | xml ::= (x b1 b0 xml-data)* X b1 b0 xml-data | ||
binary ::= (b b1 b0 binary-data)* B b1 b0 binary-data | binary ::= (b b1 b0 binary-data)* B b1 b0 binary-data | ||
− | + | ::= [xf0 - xff] binary-data | |
+ | |||
ref ::= R b3 b2 b1 b0 | ref ::= R b3 b2 b1 b0 | ||
+ | ::= x5b b0 | ||
+ | ::= x5c b1 b1 | ||
+ | |||
+ | class ::= O int string-data int string* object* | ||
+ | |||
+ | instance ::= o int object* |
Revision as of 20:03, 18 June 2006
Draft Grammar of Hessian 1.1
The following is the complete grammar for Hessian 1.1. All integers are big-endian, i.e. starting with the most-significant byte first.
top ::= call ::= reply call ::= c x01 x00 header* method object* z reply ::= r x01 x00 header* object z ::= r x01 x00 header* fault z object ::= null ::= boolean ::= int ::= long ::= double ::= date ::= string ::= xml ::= binary ::= remote ::= ref ::= list ::= map ::= class ::= instance header ::= H b1 b0 header-string object method ::= m b1 b0 method-string fault ::= f (object object)* list ::= V type? length? object* z ::= [x10 - x1f] <int> object*
map ::= M type? (object object)* z
remote ::= r type? string type ::= t b1 b0 type-string ::= T <int>
length ::= l b3 b2 b1 b0 ::= x0b b0 ::= x0c b1 b0 null ::= N
boolean ::= T ::= F int ::= I b3 b2 b1 b0 ::= [x80 - 0xcf] ::= x01 b0 ::= x02 b1 b0 long ::= L b7 b6 b5 b4 b3 b2 b1 b0 ::= [x20 - x3f] ::= x03 b0 ::= x04 b1 b0 ::= x05 b3 b2 b1 b0 double ::= D b7 b6 b5 b4 b3 b2 b1 b0 ::= x06 ::= x07 ::= x08 b0 ::= x09 b1 b0 ::= x0b b3 b2 b1 b0 ::= x0c b1 b0 date ::= d b7 b6 b5 b4 b3 b2 b1 b0 string ::= (s b1 b0 string-data)* S b1 b0 string-data ::= [xd0 - xef] string-data xml ::= (x b1 b0 xml-data)* X b1 b0 xml-data binary ::= (b b1 b0 binary-data)* B b1 b0 binary-data ::= [xf0 - xff] binary-data
ref ::= R b3 b2 b1 b0 ::= x5b b0 ::= x5c b1 b1
class ::= O int string-data int string* object*
instance ::= o int object*