UT4.2 Email

Email
XML Email
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mail SYSTEM "02.dtd">
<mail xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="02.xsd">
    <remitente>peper@gmail.com</remitente>
    <destinatarios>
        <destinatario>maria@gmail.com</destinatario>
        <destinatario>sofia@gmail.com</destinatario>
    </destinatarios>
    <fechamensaje>
        <dia>25</dia>
        <mes>11</mes>
        <año>2024</año>
    </fechamensaje>
    <asunto>Cena Navidad 2024</asunto>
    <mensaje>
        <p>
            Invitación a la Cena de Navidad
        </p>
        <p> 
            Querido/a <strong>compañero/a</strong> : 
        </p>
        <p> Nos complace invitarle a compartir una noche especial en nuestra <strong> Cena de
            Navidad</strong>, que se celebrará en el encantador <strong>Parador de Benavente</strong>. 
        </p>
        <h2>
            Detalles del Evento:
        </h2>
        <ul>
            <li>
                <strong>Fecha:</strong> Jueves, 21 de diciembre de 2023 
            </li>
            <li>
                <strong>Hora:</strong> 21:00 
            </li>
            <li>
                <strong>Lugar:</strong> Parador de Benavente
            </li>
        </ul>
        <p>
            Ven a disfrutar de una velada inolvidable llena de buena compañía, deliciosa gastronomía
            y el espíritu navideño que tanto nos une. Habremos preparado un menú especial pensado
            para celebrar este mágica ocasión.
        </p>
        <p>
            <strong>Por favor, confirma tu asistencia antes del 15 de diciembre de 2023</strong>
            respondiendo a este correo o contactando al <strong>[teléfono/email de contacto]</strong>
        </p>
        <p>
            Esperamos conytar contigo para hacer de esta cena un momento añun más especial. ¡No faltes!
        </p>
        <p>Con cariño</p>
        <p>Director</p>
    </mensaje>
    <ficheros_adjuntos>
        <fichero>
            <nombre>documento.pdf</nombre>
            <tipo>application/pdf</tipo>
        </fichero>
        <fichero>
            <nombre>imagen.png</nombre>
            <tipo>image/png</tipo>
        </fichero>
    </ficheros_adjuntos>
</mail>
DTD Email
<!ELEMENT mail (remitente,destinatarios,fechamensaje,asunto?,mensaje,ficheros_adjuntos*)>
<!ATTLIST mail xmlns:xsi CDATA #IMPLIED
                xsi:noNamespaceSchemaLocation CDATA #IMPLIED>
<!ELEMENT remitente (#PCDATA)>
<!ELEMENT destinatarios (destinatario+)>
<!ELEMENT fechamensaje (dia,mes,año)>
<!ELEMENT asunto (#PCDATA)>
<!ELEMENT mensaje (#PCDATA | p | h2 | ul)*>
<!ELEMENT ficheros_adjuntos (fichero+)>
<!ELEMENT destinatario (#PCDATA)>
<!ELEMENT dia (#PCDATA)>
<!ELEMENT mes (#PCDATA)>
<!ELEMENT año (#PCDATA)>
<!ELEMENT p (#PCDATA | strong)*>
<!ELEMENT h2 (#PCDATA)>
<!ELEMENT ul (li+)>
<!ELEMENT fichero (nombre+,tipo+)>
<!ELEMENT strong (#PCDATA)>
<!ELEMENT li (#PCDATA | strong)*>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT tipo (#PCDATA)>
XSD Email
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="mail">
        <xs:complexType>
            <xs:sequence>

                <xs:element name="remitente" type="xs:string"/>

                <xs:element name="destinatarios">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="destinatario" type="xs:string" maxOccurs="unbounded"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                
                <xs:element name="fechamensaje">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="dia" type="xs:int"/>
                            <xs:element name="mes" type="xs:int"/>
                            <xs:element name="año" type="xs:gYear"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                
                <xs:element name="asunto" type="xs:string" maxOccurs="1" minOccurs="0"/>
                
                <xs:element name="mensaje">
                    <xs:complexType>
                        <xs:choice maxOccurs="unbounded">
                            
                            <xs:element name="p" minOccurs="0">
                                <xs:complexType mixed="true">
                                    <xs:sequence>
                                        <xs:element name="strong" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>

                            <xs:element name="h2" type="xs:string"/>

                            <xs:element name="ul">
                                <xs:complexType>
                                    <xs:choice maxOccurs="unbounded">
                                        <xs:element name="li">
                                            <xs:complexType mixed="true">
                                                <xs:all>
                                                    <xs:element name="strong" type="xs:string" minOccurs="0"/>
                                                </xs:all>
                                            </xs:complexType>
                                        </xs:element>
                                    </xs:choice>
                                </xs:complexType>
                            </xs:element>

                        </xs:choice>
                    </xs:complexType>
                </xs:element>  
                
                <xs:element name="ficheros_adjuntos">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="fichero" maxOccurs="unbounded">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="nombre" type="xs:string" maxOccurs="unbounded"/>
                                        <xs:element name="tipo" type="xs:string" maxOccurs="unbounded"/>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
        
    </xs:element>
</xs:schema>