📌 Estructura del archivo XML
<oferta>
<empresa>Freidor Neptuno</empresa>
<titulo>Menú con entrante, pescado frito y bebida</titulo>
<emision>2017-11-10</emision>
<precio>14.95</precio>
<emitidos>25</emitidos>
<num_personas>2</num_personas>
<activo>true</activo>
<foto>d9ba714af95ea7cc7bdd8de5432387e4caab6d7cb1</foto>
</oferta>
📐 Elementos y tipos de datos recomendados
Elemento | Tipo XSD | Observaciones |
---|---|---|
empresa | xs:string | Nombre de la empresa |
titulo | xs:string | Descripción textual |
emision | xs:date | Formato YYYY-MM-DD |
precio | xs:decimal | Usa decimales |
emitidos | xs:positiveInteger | Números positivos (>0) |
num_personas | xs:positiveInteger | Números positivos (>0) |
activo | xs:boolean | Puede ser true o false , valor por defecto true |
foto | xs:string | Hash o identificador de imagen |
🧩 Estructura base del archivo XSD (cupon.xsd
)
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="oferta">
<xs:complexType>
<xs:sequence>
<xs:element name="empresa" type="xs:string"/>
<xs:element name="titulo" type="xs:string"/>
<xs:element name="emision" type="xs:date"/>
<xs:element name="precio" type="xs:decimal"/>
<xs:element name="emitidos" type="xs:positiveInteger"/>
<xs:element name="num_personas" type="xs:positiveInteger"/>
<xs:element name="activo" type="xs:boolean" default="true"/>
<xs:element name="foto" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
✅ Cosas a tener en cuenta para el ejercicio
- Valida el XML: Puedes usar un editor como XML Validator o herramientas como Oxygen XML o plugins de VSCode.
activo
con default: Aunque el XML original lo tiene presente, si algún día falta, el esquema aplicarátrue
automáticamente.- Fechas y decimales: Asegúrate de que los datos estén bien formateados (por ejemplo
14.95
y no14,95
). - Ajuste adicional: Si el
foto
fuera un hash de 40 caracteres, podrías usar restricciones conxs:pattern
.
¿Te gustaría que te genere también un ejemplo de validación o un esquema con restricciones adicionales?