@solsticio, olvídate de CoolReader y demás lectores. Céntrate en las especificaciones del propio formato FB2. Si te sales de esas especificaciones al crear un FB2, el fichero resultante no es correcto. Y lo que dice el creador de Calibre es que la etiqueta STYLE se sale de esas especificaciones.
Al ser un estándar ruso, la documentación que hay en inglés es poca y, parte de ella, obsoleta. Pero, usando el traductor de Google, más o menos creo que me he enterado y creo que tienes razón, que la etiqueta STYLE sí está permitida.
Y en el esquema XML de este formato se muestra lo siguiente:
Código:
<xs:complexType name="styleType" mixed="true">
<xs:annotation>
<xs:documentation>Markup</xs:documentation>
</xs:annotation>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="strong" type="styleType"/>
<xs:element name="emphasis" type="styleType"/>
<xs:element name="style" type="namedStyleType"/>
<xs:element name="a" type="linkType"/>
<xs:element name="strikethrough" type="styleType"/>
<xs:element name="sub" type="styleType"/>
<xs:element name="sup" type="styleType"/>
<xs:element name="code" type="styleType"/>
<xs:element name="image" type="inlineImageType"/>
</xs:choice>
<xs:attribute ref="xml:lang"/>
</xs:complexType>
Sin embargo, he pasado ese FB2 por un validador de este formato y esta es la lista de errores:
Código:
1. Validation of file prueba de estilos.fb2
Try the DOM parser
xml validity check passed
Schema validation
Schemas validity ERROR:
Line 5: Element '{http://www.gribuser.ru/xml/fictionbook/2.0}author': This element is not expected. Expected is ( {http://www.gribuser.ru/xml/fictionbook/2.0}genre ).
Line 3: Element '{http://www.gribuser.ru/xml/fictionbook/2.0}description': Missing child element(s). Expected is one of ( {http://www.gribuser.ru/xml/fictionbook/2.0}src-title-info, {http://www.gribuser.ru/xml/fictionbook/2.0}document-info ).
Line 13: Element '{http://www.gribuser.ru/xml/fictionbook/2.0}style', attribute 'style': The attribute 'style' is not allowed.
Line 13: Element '{http://www.gribuser.ru/xml/fictionbook/2.0}style': The attribute 'name' is required but missing.
Line 13: Element '{http://www.gribuser.ru/xml/fictionbook/2.0}style', attribute 'style': The attribute 'style' is not allowed.
....
Line 15: Element '{http://www.gribuser.ru/xml/fictionbook/2.0}style', attribute 'style': The attribute 'style' is not allowed.
Line 15: Element '{http://www.gribuser.ru/xml/fictionbook/2.0}style': The attribute 'name' is required but missing.
fb2 validity check failed
Extra FB2 checkup
Some errors found
Los puntos suspensivos corresponden al resto de errores de todas las etiquetas STYLE.
No sé, no lo tengo claro. Lo he añadido en el reporte del error del Calibre, a ver qué responde el autor.
Un saludo.
RECTIFICO
Mirando detenidamente la especificación del elemento STYLE dice que puede tener 2 atributos (nada más):
- xml: lang, opcional
- name, requerido
Lo cual vendría a decir que estaría permitido poner algo así como (el validador da esta línea como correcta):
Código:
<p>prueba <style name="estilo1">de estilos</style></p>
Lo que no entiendo es cual es la utilidad de esta etiqueta entonces.