Definición del lenguaje XML mediante una gramática Prácticas EDI - © Juan Ramón Pérez
Definición de un lenguaje mediante una gramática Especificamos el lenguaje utilizando la notación bnf. Reglas que definen los elementos del lenguaje. Ej.: <atributo>::= TOKEN_IDENTIFICADOR ‘=’ TOKEN_CADENA Prácticas EDI - © Juan Ramón Pérez
Terminales y no terminales En la gramática podemos ver elementos terminales, que se corresponden con tokens. TOKEN_IDENTIFICADOR ‘=’ ‘/>’ Elementos no terminales: siempre va a aparecer una regla para definirlos y aparecen entre < y >. <atributo> <inicio_elemento> <atributos> <cierres> Prácticas EDI - © Juan Ramón Pérez
Gramática XML <xml>::= <elemento> FIN_TOKENS <elemento>::= <inicio_elemento> <atributos> <cierres> <inicio_elemento>::= ‘<’ TOKEN_IDENTIFICADOR <atributos>::= <atributo><atributos> | vacío <atributo>::= TOKEN_IDENTIFICADOR ‘=’ TOKEN_CADENA <cierres>::= ‘/>’ | ‘>’ <mas_elementos> <fin_elemento> <mas_elementos>::= <elemento> <mas_elementos> | vacío <fin_elemento>::= ‘</’ TOKEN_IDENTIFICADOR ‘>’ Prácticas EDI - © Juan Ramón Pérez
Ejemplo de análisis sintáctico (I) Realizamos el análisis sintáctico de el siguiente elemento: <nombre valor="ana"/> Prácticas EDI - © Juan Ramón Pérez
Ejemplo (II) <xml> <Elemento> FIN-TOKENS <inicio_elemento> <atributos> <cierres> < TOKEN_IDENTIFICADOR < nombre Prácticas EDI - © Juan Ramón Pérez
Ejemplo (III) <atributos> <atributo> <atributos> TOKEN_IDENTIFICADOR = TOKEN_CADENA = “ana” valor Prácticas EDI - © Juan Ramón Pérez
Ejemplo (IV) <atributos> <atributo> <atributos> TOKEN_IDENTIFICADOR = TOKEN_CADENA vacío /> tratamientoVacio() Prácticas EDI - © Juan Ramón Pérez
Ejemplo (V) <xml> <Elemento> FIN-TOKENS <inicio_elemento> <atributos> <cierres> /> /> Prácticas EDI - © Juan Ramón Pérez
Ejemplo (VI) <xml> <Elemento> FIN-TOKENS <inicio_elemento> <atributos> <cierres> Prácticas EDI - © Juan Ramón Pérez