Articulo de referencia

Lista de referencias a entidades de caracteres XML y HTML

En los documentos SGML , HTML y XML , las construcciones lógicas conocidas como datos de caracteres y valores de atributos consisten en secuencias de caracteres, donde cada cará...

En los documentos SGML , HTML y XML , las construcciones lógicas conocidas como datos de caracteres y valores de atributos consisten en secuencias de caracteres, donde cada carácter puede manifestarse directamente (representándose a sí mismo) o representarse mediante una serie de caracteres denominada referencia de carácter , de las cuales existen dos tipos: una referencia de carácter numérica y una referencia de entidad de carácter . Este artículo enumera las referencias de entidad de carácter válidas en documentos HTML y XML.

Resumen de referencias de personajes

En HTML y XML, una referencia numérica de caracteres se refiere a un carácter por su punto de código del Conjunto Universal de Caracteres Codificados / Unicode , y utiliza el formato: o donde debe estar en minúscula en documentos XML, es el punto de código en forma hexadecimal y es el punto de código en forma decimal . El (o ) puede ser cualquier número de dígitos hexadecimales (o decimales) y puede incluir ceros iniciales. El para dígitos hexadecimales puede mezclar letras mayúsculas y minúsculas, aunque las mayúsculas son el estilo habitual. Los estándares XML y HTML restringen los puntos de código utilizables a un conjunto de valores válidos, que es un subconjunto de valores de puntos de código UCS/Unicode, que excluye todos los puntos de código asignados a no caracteres o a sustitutos, y la mayoría de los puntos de código asignados a controles C0 y C1 (con la excepción de los separadores de línea y las tabulaciones tratadas como espacios en blanco).&#xhhhh;&#nnn;xhhhhnnnhhhhnnnhhhh

Por el contrario, una referencia a una entidad de caracteres se refiere a una secuencia de uno o más caracteres por el nombre de una entidad que tiene los caracteres deseados como su texto de reemplazo . El formato es: &name;donde namees el nombre de la entidad sensible a mayúsculas y minúsculas. El punto y coma suele ser obligatorio en la referencia a la entidad de caracteres, a menos que se indique lo contrario en la tabla siguiente (véase [ a ] ​​). La entidad debe estar predefinida (integrada en el lenguaje de marcado) o declarada en una Definición de Tipo de Documento (DTD) mediante . [ b ]<!ENTITY name "value">

Conjuntos de entidades públicas estándar para caracteres

XML
XML especifica cinco entidades predefinidas necesarias para admitir todos los caracteres ASCII imprimibles: &amp;, &lt;, &gt;, &apos;, y &quot;. El punto y coma final es obligatorio en XML (y XHTML ) para estas cinco entidades (aunque HTML o SGML permiten omitirlo para algunas de ellas, según su DTD).
Conjuntos de entidades ISO
SGML proporcionó un conjunto completo de declaraciones de entidades para caracteres ampliamente utilizados en publicaciones técnicas y de referencia occidentales, para los alfabetos latino, griego y cirílico. La Sociedad Matemática Estadounidense también contribuyó con entidades para caracteres matemáticos (véase [ c ] ).
Conjuntos de entidades HTML
Las primeras versiones de HTML incorporaban pequeños subconjuntos de estos caracteres, relacionados con los caracteres que se encuentran en tres conjuntos de caracteres occidentales de 8 bits.
Conjuntos de entidades MathML
El W3C desarrolló un conjunto de declaraciones de entidades para caracteres MathML .
Conjuntos de entidades XML
El Grupo de Trabajo MathML del W3C se hizo cargo del mantenimiento de los conjuntos de entidades públicas ISO, combinándolos con MathML y ​​documentándolos en Definiciones de Entidades XML para Caracteres . Este conjunto puede satisfacer los requisitos de XHTML , MathML y ​​servir como entrada para futuras versiones de HTML.
HTML5
HTML5 adopta las entidades XML como referencias de caracteres con nombre y no las agrupa en conjuntos. Los nombres de las referencias de caracteres provienen de las definiciones de entidades XML para caracteres. La especificación HTML5 también proporciona asignaciones de los nombres a secuencias de caracteres Unicode mediante JSON .

Se han desarrollado numerosos conjuntos de entidades para necesidades especiales y para alfabetos mayoritarios y minoritarios. Sin embargo, la llegada de Unicode los ha reemplazado en gran medida.

Identificadores públicos formales para subconjuntos de entidades DTD de HTML

El identificador público formal completo y el identificador del sistema para el subconjunto de entidades DTD (donde se define el nombre de la entidad de caracteres) se asignan en realidad a partir de una de las siguientes tres entidades con nombre definidas:

  1. La DTD original de HTML 1.0, que habría estado disponible en http://info.cern.ch/MarkUp/html-spec/html.dtd
  2. No existe una DTD para HTML 5, donde todas las entidades estén predefinidas; es imposible validar estrictamente en XML el esquema necesario para (X)HTML 5, sin definir también XSD personalizados (al menos para los atributos personalizados "data-*"). En lugar de requerir compatibilidad con una DTD (con los problemas de seguridad asociados, como miles de millones de risas ), la mejor manera de intercambiar de forma segura HTML5 con XHTML es convertir todas las referencias de entidades a texto plano, referencias numéricas de caracteres o (cuando corresponda) las cinco entidades estándar de XML 1.0. Dicho esto:
    • El conjunto de entidades HTML 5 también se utiliza en MathML 3 y, para ello, a su subconjunto de entidades DTD se le asigna el conjunto de identificadores . [ 1 ]PUBLIC "-//W3C//ENTITIES HTML MathML Set//EN//XML" "http://www.w3.org/2003/entities/2007/htmlmathml-f.ent"
    • La especificación WHATWG anima a los navegadores a asignar los identificadores públicos formales de MathML 2 o XHTML 1.x (cuando se usan en XML) a una URI de datos que contenga el conjunto de entidades HTML5, y a darle precedencia sobre el identificador del sistema proporcionado, para así "manejar las entidades de forma interoperable sin necesidad de acceso a la red". [ 2 ]

Identificadores públicos formales para subconjuntos de entidades ISO antiguas

Los subconjuntos de entidades ISO son subconjuntos de caracteres antiguos (documentados), a los que se les asignan nombres de entidades de caracteres SGML en ISO 8879 e ISO 9573, y que se utilizaron en codificaciones heredadas antes de la unificación en ISO 10646. Sus identificadores públicos formales completos son los siguientes:

  1. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Una versión que comienza conISO 8879-1986//en lugar deISO 8879:1986//se considera obsoleta. [ 3 ]
  2. A veces se utiliza erróneamenteuna versión con añadido para el conjunto de entidades HTMLlat1 más grande , es decir, en lugar de [ 3 ] (ver arriba ).//HTML"-//W3C//ENTITIES Latin 1//EN//HTML"

Lista de referencias a entidades de caracteres en HTML

HTML5 define muchas entidades con nombre, cuyas referencias actúan como alias mnemotécnicos para ciertos caracteres Unicode. [ 5 ] La especificación HTML5 no permite a los usuarios definir entidades adicionales, ya que ya no acepta que se haga referencia a ninguna DTD ni que se extienda dentro de los documentos HTML (esto todavía es necesario en XHTML, que se basa en reglas de análisis XML más estrictas, pero permite hacer referencia o definir una DTD en el encabezado del documento, porque XML no predefine la mayoría de las entidades HTML).

En la tabla siguiente, la columna "Estándar" indica la primera versión del DTD HTML que define la referencia de entidad de caracteres, e indica caracteres que están predefinidos en XML sin necesidad de ningún DTD. Para usar una de estas referencias de entidad de caracteres en un documento HTML o XML, introduzca un signo de ampersand (&) seguido del nombre de la entidad y un punto y coma (obligatorio en XML y muy recomendable en HTML para todas las entidades, incluso si HTML permite omitir el punto y coma solo para algunas entidades indicadas a continuación por [ a ] ), por ejemplo, introduzca &copy;para el símbolo de copyright © .

No existen entidades de caracteres predefinidas en HTML para los caracteres o secuencias de la mayoría de los sistemas de escritura codificados en el UCS (excepto un subconjunto común de espacios en blanco, signos de puntuación, símbolos matemáticos o técnicos, símbolos monetarios, algunos símbolos hebreos utilizados en notaciones matemáticas y las letras más comunes en latín, griego o cirílico). Cabe destacar también que no todos los controles bidireccionales definidos en UCS/Unicode se representan como entidades de caracteres estándar en HTML (ni siquiera en HTML5, que define elementos y atributos direccionales más generales para tal fin). Es importante señalar que no existen entidades de caracteres HTML predefinidas para los controles que se añadieron en UCS/Unicode y se definieron formalmente en la versión 2 del algoritmo bidireccional de Unicode.

La mayoría de las entidades están predefinidas en XML y HTML para hacer referencia a un solo carácter en el UCS, pero no hay entidades predefinidas para caracteres combinables aislados, selectores de variación o caracteres para asignaciones de uso privado; sin embargo, la lista incluye algunas entidades predefinidas para secuencias de caracteres de dos caracteres que contienen algunos de ellos. Desde HTML 5.0 (y MathML 3.0, que comparte el mismo conjunto de entidades), todas las entidades están codificadas en formas de normalización Unicode C y KC (este no era el caso con versiones anteriores de HTML y MathML, por lo que las entidades anteriores que se definieron inicialmente con caracteres para asignaciones de uso privado, formas de compatibilidad CJK o en formas no NFC fueron modificadas [ 6 ] ).

Sin embargo, todos los caracteres y secuencias válidos del UCS, incluidos todos los controles bidireccionales o asignaciones de uso privado (pero con la excepción de los controles C0 y C1 que no son espacios en blanco, los caracteres que no son caracteres y los sustitutos), también se pueden usar y son válidos en HTML, XML, XHTML y MathML, ya sea en valores de texto plano de atributos o en elementos de texto (codificándolos directamente como texto plano o utilizando referencias numéricas de caracteres cuando sea necesario).

Notes

  1. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108The trailing semicolon may be omitted for this named entity.
  2. 12 DTD: see § Formal public identifiers for HTML DTD entities subsets
  3. 12Old ISO subset: see § Formal public identifiers for old ISO entities subsets
  4. Description: the standard ISO 10646 and Unicode character name is displayed first for each character, with non-standard but legacy synonyms shown in italics between parentheses after an equal sign.
  5. 123The leading space before combining characters used in old DTDs for MathML2.0 was removed in MathML 3.0 and HTML 5.0.
  6. &quot; was omitted from the HTML 3.2 specification, but was restored as of HTML 4.0. In practice, most web browsers displaying HTML 3.2 pages render it as if it had been included in the spec.
  7. 1234spaces: a blue background is used to display each space's width.
  8. &copy;: U+00A9 'copyright symbol' is not the same as U+24B8 'circled Latin capital letter C', although the same glyph could be used do depict both characters. See also U+24D2 'Latin small letter c'.
  9. &reg;: U+00AE 'registered sign' is not the same as U+24C7 'circled Latin capital letter R', although the same glyph could be used do depict both characters.
  10. &angst;: The use of U+212B 'Angstrom sign', which was encoded due to round-trip mapping compatibility with an East-Asian character encoding, is discouraged, and the preferred representation is U+00C5 'capital letter A with ring above', which has the same glyph.
  11. 12&IJlig; and &ijlig;: The use of U+0132 'IJ ligature' or U+0133 'ij ligature', which were encoded for usage in Dutch and for compatibility for ISO/IEC 6937 and Code page 1102 (which only includes the lowercase ij, also part of the Dutch version of ISO 646 National Replacement Character Set), is discouraged, and the preferred representation is simply 'IJ' or 'ij' (as two separate letters).
  12. 12&lmidot;: The use of U+013F 'Latin small letter l with middle dot' or U+0140 'Latin capital letter L with middle dot', which were encoded for usage in Catalan and for compatibility for ISO/IEC 6937, is discouraged, and the preferred representation is 'L' or 'l', followed by U+00B7.
  13. &napos;: The use of U+0149 'n preceded by apostrophe', which was encoded for usage in Afrikaans and for compatibility for ISO/IEC 6937, has been deprecated by Unicode (since Unicode 5.2), and the preferred representation is ʼn (U+02BC followed by n). (Unicode.org – Proposal for Additional Deprecated Characters).
  14. 12ligature: this is a standard misnomer as this is a separate character in some languages.
  15. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849Greek letters: the ISOgrk1 set includes a set of entity names for the entire Greek alphabet (without diacritics),[7] while the ISOgrk3 set includes a different set of entity names for the subset of the Greek letters used contrastively with Latin letters in mathematical notation.[8] The HTML HTMLsymbol set includes an expanded version of the ISOgrk3 set, not the ISOgrk1 set.
  16. &ohm;: The use of U+2126 'ohm sign', is discouraged, and the preferred representation is U+03A9 'Greek capital letter Omega', which has the same glyph.
  17. 1234&NegativeMediumSpace;, &NegativeThickSpace;, &NegativeThinSpace;, &NegativeVeryThinSpace;: these are names used in the Wolfram Language for Private Use Area characters with negative advance widths;[9][10][11][12] HTML5 approximates them with the zero-width space.
  18. 12345black: here it seems to mean filled as opposed to hollow.
  19. 12ISO proposed: these characters have been standardized in ISO 10646 after the release of HTML 4.0.
  20. 1234&image;, &map;: these two entity names were defined differently, as file-type icons, in the abandoned specification for HTML version 3.0.[13][14]
  21. &copysr;: U+2117 'sound recording copyright' is not the same as U+24C5 'circled Latin capital letter P', although the same glyph could be used do depict both characters.
  22. &alefsym;: U+2135 'alef symbol' is not the same as U+05D0 'Hebrew letter alef' (which, unlike the mathematical symbol, has strong right-to-left bidirectional text behaviour), although the same glyph could be used to depict both characters.
  23. &beth;: U+2136 'bet symbol' is not the same as U+05D1 'Hebrew letter bet' (which, unlike the mathematical symbol, has strong right-to-left bidirectional text behaviour), although the same glyph could be used to depict both characters.
  24. &gimel;: U+2137 'gimel symbol' is not the same as U+05D2 'Hebrew letter gimel' (which, unlike the mathematical symbol, has strong right-to-left bidirectional text behaviour), although the same glyph could be used to depict both characters.
  25. &daleth;: U+2138 'dalet symbol' is not the same as U+05D3 'Hebrew letter dalet' (which, unlike the mathematical symbol, has strong right-to-left bidirectional text behaviour), although the same glyph could be used to depict both characters.
  26. &lArr;: ISO 10646 does not say that 'leftwards double arrow' is the same as the 'is implied by' arrow, but also does not have any other character for that function, so lArr can be used for 'is implied by' as ISOtech suggests.
  27. &rArr;: ISO 10646 does not say that 'rightwards double arrow' is the same as the 'implies' arrow, but also does not have any other character with this function, so rArr can be used for 'implies' as ISOtech suggests.
  28. &prod;: U+220F 'n-ary product' is not the same character as U+03A0 'Greek capital letter Pi' though the same glyph might be used for both.
  29. &sum;: U+2211 'n-ary summation' is not the same character as U+03A3 'Greek capital letter Sigma' though the same glyph might be used for both.
  30. &sim;: U+223C 'tilde operator' is not the same character as U+007E 'tilde', although the same glyph might be used to represent both.
  31. &nsup;: U+2285 'not a superset of' is in the 'ISOamsn' subset, but is not covered by the Symbol font encoding, and is not listed in the HTML 4.0 entities list on the documentation, where it was erroneously omitted; it should be included for symmetry and analogy with other entities.
  32. &perp;: Unicode only defines U+22A5 as the "up tack", and the Unicode symbol for "perpendicular" is U+27C2: the two symbols look similar, but are separate in Unicode. However, HTML uses U+22A5 as its "perpendicular" symbol: this is a discrepancy between HTML and Unicode. As well, the U+22A4 character (the "down tack" symbol) rendered in a browser such as Firefox 3.6 can match the font of either "up tack" or "perpendicular", but not both, depending on whether a fixed-width or a proportional font is used. When viewed in Firefox 3.6, the symbols rendered in the order U+22A5, U+22A4, U+27C2 in a proportional font: "⊥ ⊤ ⟂" and a fixed width one: ⊥ ⊤ ⟂, shows that the "down tack" has a similar look to U+22A5 (HTML's "perpendicular") in the first case but matches U+27C2 in the second. This exemplifies the difficulties of the semiotics involved in interpreting glyphs, symbols and characters generally.
  33. &sdot;: U+22C5 'dot operator' is not the same character as U+00B7 'middle dot'.
  34. &Ll;: U+22D8 'very much less-than' is missing in the HTML 5.2 list of entities, where it was omitted.
  35. &lang;: U+27E8 'mathematical left angle bracket' is not the same character as U+003C 'less than', U+2039 'single left-pointing angle quotation mark', or U+3008 'left angle bracket'. In HTML 5.0, lang was remapped to this code, as U+2329 'left-pointing angle bracket' has been marked deprecated in Unicode (since version 5.2) (Unicode.org – Proposal for Additional Deprecated Characters).
  36. &rang;: U+27E9 'mathematical right angle bracket' is not the same character as U+003E 'greater than', U+203A 'single right-pointing angle quotation mark', or U+3009 'right angle bracket'. In HTML 5.0, rang had been remapped to this code, as U+232A 'right-pointing angle bracket' has been marked deprecated in Unicode (since version 5.2) (Unicode.org – Proposal for Additional Deprecated Characters).

Entities representing special characters in XHTML

The XHTMLDTDs explicitly declare 253 entities (including the 5 predefined entities of XML 1.0) whose expansion is a single character, which can therefore be informally referred to as "character entities". These (with the exception of the &apos; entity) have the same names and represent the same characters as the 252 character entities in HTML 4.0. Also, by virtue of being XML, XHTML documents may reference the predefined &apos; entity, which is not one of the 252 character entities in HTML 4.0. Additional entities of any size may be defined on a per-document basis. However, the usability of entity references in XHTML is affected by how the document is being processed:

  • Legacy abbreviated character entities (without the final colon) inherited from HTML 2.0 (and still supported in HTML 5.0) are not supported in XML 1.0 and XHTML; the trailing semicolon must be present in all entity references used in XML and XHTML documents.
  • If the XHTML document is read by a conforming HTML 4.0 processor, then only the 252 HTML 4.0 character entities may safely be used. The use of &apos; or custom entity references may not be supported and may produce unpredictable results (it is recommended to use the numerical character reference &#39; instead).
  • If the document is read by an XML parser that does not or cannot read external entities, then only the five built-in XML character entities can safely be used, although other entities may be used if they are declared in the internal DTD subset. However, modern XML parsers recognize and implement a builtin cache for SGML references to DTDs used by all standard versions of HTML, XHTML, SVG and MathML, without needing to parse and process the external DTD via their URL and without needing to process entities defined in an internal DTD subset of the document.
  • If the document is read by an XML parser that does read external entities and does not implement a builtin cache for well-known DTDs, then the five built-in XML character entities (and numeric character references) can safely be used. The other 248 HTML character entities can be used as long as the XHTML DTD is accessible to the parser at the time the document is read. Other entities may also be used if they are declared in the internal DTD subset and the XML processor can parse internal DTD subsets.
  • HTML 5.0 parsers cannot process XHTML documents, and it's impossible to define a fully validating DTD for HTML5 documents encoded with the XHTML syntax (notably it's impossible to validate all attributes names, notably "data-*" attributes); as well it's still impossible to fully validate (with W3C standard schemas for XML, such as XSD or relax NG) HTML5 documents represented in the XHTML syntax, and for now a custom validator specific to HTML 5.0 is required.

Because of the special &apos; case mentioned above, only &quot;, &amp;, &lt;, and &gt; will work in all XHTML processing situations.

See also

References

  1. "htmlmathml-f entity set". W3C. 2011.
  2. "14.2 Parsing XML documents". HTML Standard. WHATWG. Retrieved 13 July 2024.
  3. 123456789101112131415161718192021"sgml-iso-entities-8879.1986/catalog". Debian. 2013.
  4. 12345678910111213"sgml-iso-entities-9573-13.1991/catalog". Debian. 2013.
  5. "HTML5 Named Character Reference List".
  6. "XML Entity Definitions for Characters (3rd Edition) - § C Differences between these entities and earlier W3C DTDs".
  7. Organization for the Advancement of Structured Information Standards (OASIS) (2002). "ISO Greek Letters Entities V0.3". Debian.
  8. Organization for the Advancement of Structured Information Standards (OASIS) (2002). "ISO Greek Symbols Entities V0.3". Debian.
  9. Wolfram. "\[NegativeThickSpace]". Wolfram Language Documentation.
  10. Wolfram. "\[NegativeMediumSpace]". Wolfram Language Documentation.
  11. Wolfram . "\ [ NegativeThinSpace ] " . Documentación del lenguaje Wolfram .
  12. Wolfram . "\ [ NegativeVeryThinSpace ] " . Documentación del lenguaje Wolfram .
  13. Hannah, Michael J. (7 de diciembre de 1995). "Iconos HTML: Nombres de entidades de iconos HTML propuestos" . Archivado del original el 2 de febrero de 2015.
  14. "Iconos ISO/WWW estándar cortesía de Bert Bos y Kevin Hughes" . W3C .

Lecturas adicionales

  • Consorcio Unicode . Véase también: Consorcio Unicode.
    • UnicodeData.txt del Consorcio Unicode
  • Consorcio World Wide Web . Véase también: Consorcio World Wide Web
    • Especificación XML 1.0
    • Especificación HTML 2.0
    • Especificación HTML 3.2
    • Especificación HTML 4.0
    • Especificación HTML 4.01
    • Especificación HTML 5
    • Especificación XHTML 1.0
    • Definiciones de entidades XML para caracteres
  • La referencia normativa a la RFC 2070 (que aún se encuentra en las DTD que definen las entidades de caracteres para HTML o XHTML) es histórica; esta RFC (junto con otras RFC relacionadas con diferentes partes de la especificación HTML) ha sido descontinuada en favor de la RFC 2854, más reciente e informativa, que define el tipo MIME "text/html" y hace referencia directamente a las especificaciones del W3C para el contenido HTML real.
  • Referencia numérica de los puntos de código Unicode en Wikibooks
  • Tabla de referencia de caracteres HTML5 de W3C
  • Referencias a entidades de caracteres en HTML 4 en el W3C
  • Página web para codificar y decodificar caracteres especiales. Archivada el 29 de enero de 2018 en Wayback Machine.