En DTD, no hay soporte directo para la herencia de definiciones entre DTDs. Los DTDs se definen de forma independiente y no pueden heredar o extender definiciones de otros DTDs.
Sin embargo, puedes lograr cierto nivel de reutilización y modularidad en DTD utilizando entidades y notaciones externas. Aquí hay una posible solución para tu caso:
1. Crea un DTD genérico llamado "generic.dtd" que define la etiqueta "Descripcion" de forma genérica, sin detalles específicos. Por ejemplo:
2. Luego, crea un DTD específico para cada tipo de documento que herede del DTD genérico y defina sus propias etiquetas adicionales. Por ejemplo, crea un DTD llamado "specific1.dtd" que extienda el DTD genérico y añada etiquetas adicionales:
3. Repite el paso 2 para cada DTD específico adicional que necesites, utilizando la entidad %generic para incluir el DTD genérico y luego añadiendo las definiciones específicas.
4. Al utilizar los DTDs específicos en tus documentos XML, simplemente incluye el DTD genérico en cada uno de ellos mediante la entidad %generic y luego agrega las definiciones específicas necesarias. Por ejemplo:
Esta técnica te permite tener un DTD genérico con la etiqueta "Descripcion" y luego definir etiquetas adicionales específicas en cada DTD hijo. Sin embargo, ten en cuenta que esto no es una herencia real en el sentido de la programación orientada a objetos, sino más bien una forma de reutilización y modularidad a través de la inclusión de entidades y notaciones externas. Si necesitas un enfoque más avanzado de herencia y extensibilidad, puede ser necesario considerar el uso de Schemas XML (como XSD) que ofrecen más flexibilidad en este sentido.