| labellist | ::= | <L_PAREN> version ( service_info )+ <R_PAREN> |
| version | ::= | <PICS11> |
| | | <PICS10> | |
| service_info | ::= | <ERROR> <L_PAREN> <NORAT> ( explanation )* <R_PAREN> |
| | | serviceID ( service_error | ( ( option )* labelword ( label )* ) ) | |
| serviceID | ::= | quotedURL |
| labelword | ::= | <LABELS> |
| | | <LOWALPHA> | |
| label | ::= | label_error |
| | | single_label | |
| | | <L_PAREN> ( single_label )* <R_PAREN> | |
| single_label | ::= | ( option )* ratingword <L_PAREN> ( rating )+ <R_PAREN> |
| ratingword | ::= | <RATINGS> |
| | | <LOWALPHA> | |
| quotedURL | ::= | <DQUOTE> URL <DQUOTE> |
| URL | ::= | ( <SLASH> | urlchar )+ |
| option | ::= | labeloption |
| | | documentoption | |
| | | otheroption | |
| labeloption | ::= | <BY> quotedname |
| | | <GENERIC> bool | |
| | | <FOR> quotedURL | |
| | | <ON> quotedISOdate | |
| | | <SIGNATURE> base64string | |
| | | ( <UNTIL> | <EXP> ) quotedISOdate | |
| bool | ::= | <TRUE> |
| | | <FALSE> | |
| documentoption | ::= | <AT> quotedISOdate |
| | | <MD5> base64string | |
| otheroption | ::= | <COMMENT> quotedname |
| | | <FULL> quotedURL | |
| | | <EXT> <L_PAREN> mand_opt quotedURL ( data )* <R_PAREN> | |
| mand_opt | ::= | <OPT> |
| | | <MAND> | |
| data | ::= | ( quotedISOdate | quotedURL | quotedname | quotedbase64 | number | <L_PAREN> ( data )* <R_PAREN> ) |
| quotedISOdate | ::= | <DQUOTE> ISOyear ( <DOT> | <MINUS> ) ISOmonth ( <DOT> | <MINUS> ) ISOday <HIGHALPHA> ISOhour <COLON> ISOminute ( <COLON> ISOsecond ( <DOT> ISOdecimal )? )? sign ISOtimezone <DQUOTE> |
| sign | ::= | <PLUS> |
| | | <MINUS> | |
| rating | ::= | transmit_name ( number | ( <L_PAREN> multi_value ( multi_value )* <R_PAREN> ) ) |
| multi_value | ::= | number ( <COLON> number )? |
| transmit_name | ::= | ( transmit_name_char )+ ( <SLASH> transmit_name )? |
| singlenum | ::= | <DIGIT> |
| decimalnum | ::= | ( singlenum )+ <DOT> singlenum |
| number | ::= | decimalnum |
| | | ( singlenum )+ | |
| quotedname | ::= | <DQUOTE> ( urlchar_or_space )+ <DQUOTE> |
| alphanumpm | ::= | <LOWALPHA> |
| | | <HIGHALPHA> | |
| | | <DIGIT> | |
| | | sign | |
| escape | ::= | ( <PERCENT> hex hex ) |
| hex | ::= | ( <DIGIT> | <LOWALPHA> | <HIGHALPHA> ) |
| transmit_name_char | ::= | ( <LOWALPHA> | <HIGHALPHA> | <DIGIT> | <PLUS> | <MINUS> | escape | <ATSIGN> | <SEMI> | <QUES> | <COLON> | <AMP> | <EQUAL> | <DOLLAR> | <USCORE> | <DOT> | <POUND> | <BANG> | <STAR> | <COMMA> | <NATIONAL> | reservedString ) |
| urlchar | ::= | ( <LOWALPHA> | <HIGHALPHA> | <DIGIT> | <MINUS> | escape | <ATSIGN> | <SEMI> | <QUES> | <COLON> | <AMP> | <EQUAL> | <DOLLAR> | <USCORE> | <DOT> | <POUND> | <BANG> | <STAR> | <COMMA> | <NATIONAL> | <L_PAREN> | <R_PAREN> | reservedString ) |
| reservedString | ::= | ( <PICS11> | <PICS10> | <ERROR> | <NORAT> | <LABELS> | <RATINGS> | <BY> | <GENERIC> | <FOR> | <ON> | <SIGNATURE> | <UNTIL> | <EXP> | <TRUE> | <FALSE> | <AT> | <MD5> | <COMMENT> | <FULL> | <EXT> | <OPT> | <MAND> | <DENIED> | <NOT> | <NOSER> ) |
| urlchar_or_space | ::= | urlchar |
| quotedbase64 | ::= | <DQUOTE> base64string <DQUOTE> |
| base64string | ::= | ( ( <LOWALPHA> | <HIGHALPHA> | <DIGIT> | <SLASH> | <EQUAL> | <PLUS> ) | reservedString )+ |
| service_error | ::= | <ERROR> ( ( <L_PAREN> <DENIED> ( explanation )* <R_PAREN> ) | <NOSER> ) |
| label_error | ::= | <ERROR> <L_PAREN> ( ( <DENIED> ( quotedURL ( explanation )* )? ) | ( <NOT> ( quotedURL )* ) ) <R_PAREN> |
| explanation | ::= | quotedname |
| ISOyear | ::= | <DIGIT> <DIGIT> <DIGIT> <DIGIT> |
| ISOmonth | ::= | <DIGIT> <DIGIT> |
| ISOday | ::= | <DIGIT> <DIGIT> |
| ISOhour | ::= | <DIGIT> <DIGIT> |
| ISOminute | ::= | <DIGIT> <DIGIT> |
| ISOsecond | ::= | <DIGIT> <DIGIT> |
| ISOdecimal | ::= | ( <DIGIT> )+ |
| ISOtimezone | ::= | <DIGIT> <DIGIT> <DIGIT> <DIGIT> |