Tecnologías de la información
XML
General
XML (eXtensible Markup Language)
XML estructura datos; una DTD describe reglas del documento. El riesgo aparece también en cómo lo procesa la aplicación, así que formato válido y procesamiento seguro son checkpoints distintos.
Es un lenguaje de marcado que permite estructurar y organizar información de forma jerárquica usando etiquetas personalizadas. Similar a HTML pero más flexible, ya que puedes crear tus propias etiquetas personalizadas.
Por ejemplo:
<libro>
<titulo>Don Quijote</titulo>
<autor>Miguel de Cervantes</autor>
</libro>
DTD (Document Type Definition)
Es como un "manual de reglas" para documentos XML. Define:
- Qué elementos pueden existir
- Qué atributos pueden tener
- Cómo se pueden organizar y anidar entre sí
Por ejemplo:
<!ELEMENT libro (titulo, autor)>
<!ELEMENT titulo (#PCDATA)>
<!ELEMENT autor (#PCDATA)>
Entidades
Son referencias especiales que representan contenido que se usa frecuentemente o caracteres especiales. Hay dos tipos principales:
- Entidades predefinidas: Sirven para usar caracteres especiales que podrían confundirse con marcado XML:
< representa <
> representa >
& representa &
- Entidades personalizadas: Son como "variables" que defines para reutilizar texto:
<!ENTITY editorial "Editorial Planeta">
Luego puedes usarla en el XML así:
<publisher>&editorial;</publisher>
Referencia: XML 1.0, W3C. El ejemplo libro está bien formado; validar contra una DTD es otra comprobación. Las declaraciones <!ELEMENT> y <!ENTITY> van dentro de una DTD (subconjunto interno del DOCTYPE o externa), no sueltas en cualquier posición. El publisher es un ejemplo separado y no coincide con la DTD libro mostrada. Además de lt/gt/amp existen apos/quot. Entidades internas y externas son otra clasificación distinta de predefinidas/personalizadas. Deshabilitar resolución externa/DTD cuando no haga falta y limitar expansiones según parser para evitar XXE/agotamiento.
+----------------------------------------+
| Floure & |
| Tachibana's guild |
| [Hikari · Nozomi] |
| SEAL: sha256/12: b52c50fa5a8b |
| STATUS: LITURGY_IN_PROGRESS |
+----------------------------------------+
Conexiones
Desde este apunte · 0
Sin enlaces salientes a otras notas.