Buscar..


Observaciones

Desde una perspectiva de almacenamiento, un documento XML está hecho de entidades. Una de las entidades es la entidad de documento, que es el principal documento XML en sí.

Las entidades se pueden clasificar como tales (clasificadas tentativamente por orden de uso descendente):

  • entidad de documento : este es el archivo XML principal.
  • Entidades generales internas : esta es la más común además de la entidad de documento, y la que más usuarios de XML conocen. A menudo, la palabra entidad se usa casualmente para ellos. Permiten especificar algunos accesos directos para textos de reemplazo más largos en el contenido del documento. Están declarados en la DTD.
  • el subconjunto DTD externo : otro archivo en el que se subcontrata parte de la DTD.
  • entidades de parámetros : accesos directos, para su uso en la DTD.
  • Entidades generales analizadas externas : son fragmentos XML almacenados en otros archivos.
  • entidades no analizadas : pueden ser cualquier archivo en el que XML no impone restricciones, incluidas imágenes, sonidos, etc.

En muchos casos, un documento XML consiste únicamente en la entidad del documento.

Entidades generales predefinidas

XML pre-define cinco entidades generales que se pueden usar sin declararlas:

& " ' < >

Están asociados con los nombres amp , quot , apos , lt y gt .

<?xml version="1.0"?>
<entities>
  &amp; is an ampersand.
  &quot; is a quote.
  &apos; is an apostrophe.
  &lt; is a lower-than sign.
  &gt; is a greater-than sign. 
</entities>

Entidades generales (internas) definidas por el usuario

Es posible definir las propias entidades generales. La declaración se produce en el subconjunto DTD, con un nombre y el texto de reemplazo asociado.

Luego se puede usar en el documento usando la sintaxis de referencia de la entidad &...; , ya sea en texto, o en valores de atributo.

<?xml version="1.0"?>
<!DOCTYPE my-document [
  <!ENTITY my-entity "This is my entity">
]>
<my-document>
    The entity was declared as follows: &my-entity;
    <element attribute="Entity: &my-entity;"/>
</my-document>

Entidades analizadas externas

Los fragmentos XML, también conocidos con el nombre de entidades analizadas externas , pueden almacenarse en archivos separados.

Los fragmentos XML, a diferencia de los documentos XML, son menos restrictivos, ya que pueden aparecer varios elementos de nivel superior, así como nodos de texto. Al igual que un documento XML, una entidad analizada externa puede comenzar con una declaración XML, pero esta declaración no se considera parte de su texto de reemplazo.

Este es un ejemplo de entidad analizada externa:

<?xml version="1.0" encoding="UTF-8"?>
This is some text
<element/>
<element/>

Una entidad analizada externa se puede declarar en un documento XML, en la DTD, y se puede usar con una referencia de entidad, que tiene la misma sintaxis que para las entidades internas generales:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY fragment SYSTEM "fragment.xml">
]>
<root>
    &fragment;
</root>

Con la referencia de la entidad resuelta, este documento es equivalente a:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY fragment SYSTEM "fragment.xml">
]>
<root>
  This is some text
  <element/>
  <element/>
</root>

Cada etiqueta de elemento de apertura en una entidad analizada externa debe tener una etiqueta de final correspondiente: no está permitido distribuir elementos individuales sobre varias entidades, ni difundir el marcado.

Se requiere un analizador de validación para resolver la referencia de la entidad e incluir su texto de reemplazo en el documento como se indicó anteriormente. Un analizador no validador puede omitir esto y, en cambio, decirle a la aplicación consumidora que hay una referencia no resuelta a una entidad analizada externa.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow