stringtranslate.com

Entidad SGML

En el lenguaje de marcado generalizado estándar (SGML), una entidad es un tipo de datos primitivo que asocia una cadena con un alias único (como un nombre especificado por el usuario) o una palabra reservada de SGML (como ). Las entidades son fundamentales para la estructura organizativa y la definición de los documentos SGML. La especificación SGML define numerosos tipos de entidad , que se distinguen por calificadores de palabras clave y contexto. Un valor de cadena de entidad puede constar de texto sin formato , etiquetas SGML y/o referencias a entidades definidas previamente. Ciertos tipos de entidad también pueden invocar documentos externos. Las entidades se invocan por referencia .#DEFAULT

Tipos de entidad

Las entidades se clasifican en generales o paramétricas:

Las entidades también se clasifican como analizadas o no analizadas:

Entidades internas y externas

Una entidad interna tiene un valor que es una cadena literal o una cadena analizada que comprende el marcado y las entidades definidas en el mismo documento (como una declaración de tipo de documento o un subdocumento). Por el contrario, una entidad externa tiene una declaración que invoca un documento externo, por lo que se necesita la intervención de un administrador de entidades para resolver la referencia del documento externo.

Entidades del sistema

Una declaración de entidad puede tener un valor literal o puede tener alguna combinación de un SYSTEM identificador opcional , que permite a los analizadores SGML procesar la cadena de referencia de una entidad como un identificador de recurso, y un PUBLICidentificador opcional, que identifica la entidad independientemente de cualquier representación particular. En XML , un subconjunto de SGML , una declaración de entidad no puede tener un PUBLICidentificador sin un SYSTEMidentificador.

Entidad de documento SGML

Cuando una entidad externa hace referencia a un documento SGML completo, se la conoce en el documento que la llama como una entidad de documento SGML . Un documento SGML es un documento de texto con marcado SGML definido en un prólogo SGML (es decir, la DTD y los subdocumentos). Un documento SGML completo comprende no solo la instancia del documento en sí, sino también el prólogo y, opcionalmente, la declaración SGML (que define la sintaxis de marcado del documento y declara la codificación de caracteres ). [1]

Sintaxis

Una entidad se define mediante una declaración de entidad en la definición de tipo de documento (DTD) de un documento . Por ejemplo:

<!ENTITY  greeting1  "Hola mundo" > <!ENTITY  greeting2  SYSTEM  "file:///hello.txt" > <!ENTITY  %  greeting3  "¡Hola!" > <!ENTITY  greeting4  "%greeting3; significa ¡Hola!" >

Este marcado DTD declara lo siguiente:

Los nombres de las entidades deben seguir las reglas de los nombres SGML y existen limitaciones sobre dónde se pueden referenciar las entidades.

Las entidades de parámetros se referencian colocando el nombre de la entidad entre %y ;. Las entidades generales analizadas se referencian colocando el nombre de la entidad entre " &" y " ;". Las entidades no analizadas se referencian colocando el nombre de la entidad en el valor de un atributo declarado como tipo ENTITY.

Las entidades generales del ejemplo anterior podrían referenciarse en un documento de la siguiente manera:

<content> <info> ' &greeting1; ' es una cadena de prueba común . </info> <info> El contenido de hello.txt es: &greeting2; </info> <info> En español, &greeting4; </info> </content>               

Una vez analizado, este documento se informará a la aplicación posterior de la misma manera que si se hubiera escrito de la siguiente manera, asumiendo que el hello.txtarchivo contiene el texto Salutations:

<content> <info> 'Hola mundo' es una cadena de prueba común . </info> <info> El contenido de hello.txt es: Saludos </info> <info> En español, ¡Hola! significa ¡Hola! </info> </content>                  

Una referencia a una entidad no declarada es un error a menos que se haya definido una entidad predeterminada. Por ejemplo:

 <!ENTITY  #DEFAULT  "Esta entidad no está definida" >

Las construcciones de marcado adicionales y las opciones del procesador pueden afectar el procesamiento de las entidades y la forma en que se procesan. Por ejemplo, un procesador puede ignorar opcionalmente las entidades externas.

Entidades de carácter

Los conjuntos de entidades estándar para SGML y algunos de sus derivados se han desarrollado como dispositivos mnemotécnicos , para facilitar la creación de documentos cuando existe la necesidad de utilizar caracteres que no se escriben fácilmente o que no son ampliamente compatibles con las codificaciones de caracteres heredadas. Cada una de estas entidades consta de un solo carácter del conjunto de caracteres universal . Aunque se puede hacer referencia a cualquier carácter mediante una referencia de carácter numérica , una referencia de entidad de carácter permite hacer referencia a los caracteres por nombre en lugar de por punto de código .

Por ejemplo, HTML 4 tiene 252 entidades de caracteres integradas que no necesitan ser declaradas explícitamente, mientras que XML tiene cinco. XHTML tiene las mismas cinco que XML, pero si sus DTD se usan explícitamente, entonces tiene 253 ( &apos;siendo la entidad adicional además de las de HTML 4).

Véase también

Notas

  1. ^ "Explicación de Web SGML y HTML 4.0 - Capítulo 6". www.is-thought.co.uk . Archivado desde el original el 5 de febrero de 2009.

Referencias

Enlaces externos