To illustrate the grammar, some examples are given next:
Examples
Phone number required for passenger of the passenger list:
passengerSpecifications[0].detail.contact.phoneNumber
First name and last name required for the second passenger on the passenger list:
passengerSpecifications[1].detail.firstName AND passengerSpecifications[1].detail.lastName
More complex example:
passengerSpecifications[0].detail.firstName AND passengerSpecifications[0].detail.lastName AND (passengerSpecifications[0].detail.contact.email OR passengerSpecifications[0].detail.contact.phoneNumber)
requesting a phone number per passenger:
                 passengerSpecifications[ANY].detail.contact.phoneNumber
	
		
Grammar for Requested Information
Here is the grammar in ANTLR notation.
		grammar RequestedInformation;
		And_Operator : 'AND';
		Or_Operator : 'OR';
		Opening_Index_Bracket: '[';
		Closing_Index_Bracket: ']';
		Opening_Bracket: '(';
		Closing_Bracket: ')';
		Point: '.';
		
		requested_informations: requested_information+ EOF;
		
		requested_information
				: class_index_attribute
				| requested_information And_Operator requested_information
				| requested_information Or_Operator requested_information
				| Opening_Bracket requested_information Closing_Bracket
				;
		
		class_index_attribute
				: Attribute Opening_Index_Bracket Identifier Closing_Index_Bracket (Point Attribute)+
				;
		
		Attribute
				: [a-zA-Z_]+
				;
		
		Identifier
				: 'ANY'
				;
		
		boolean_operator
				: And_Operator
				| Or_Operator
				;
		
		WS
				: [ \t\r\n]+ -> skip
				;