Professional Documents
Culture Documents
Crea un esquema XML para validar documentos XML con información dun módulo,
tendo en conta que:
▪ O módulo ten un atributo código obrigatorio.
▪ Un módulo ten unha relación de elementos: duración, nome, ciclo (poden
ser varios) e contidos.
▪ A duración ten dous atributos obrigatorios (horas e sesións semanais) e un
atributo opcional para indicar as sesións anuais
▪ O ciclo ten un atributo obrigatorio para indicar o seu código.
▪ Contidos consta dun número indeterminado de elementos UD
▪ UD ten dous atributos obrigatorios para indicar o número, e as sesións.
Consta dun elemento título obrigatorio e un elemento descrición opcional.
▪ Valorarase o uso de referencias na declaración dos elementos.
Un exemplo de arquivo XML con información dun módulo sería o seguinte:
1
Linguaxes de marcas para a transmisión de información a
través da Web: HTML.
</titulo>
</UD>
<UD num="3" sesións="13">
<titulo>
Linguaxes de marcas para a transmisión de información a
través da Web: CSS
</titulo>
<descrición>
Separar o contido da presentación. Follas de estilo CSS.
</descrición>
</UD>
</contidos>
</modulo>
SOLUCIÓN
<xs:element name="duracion">
<xs:complexType>
<xs:attribute name="horas" type="xs:unsignedByte" use="required"/>
<xs:attribute name="sesions" type="xs:unsignedByte"/>
<xs:attribute name="sesionsSemanais" type="xs:unsignedByte"
use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="ciclo">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="codigo" type="xs:string" use="required"/>
</xs:extension>
2
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="contidos">
<xs:complexType>
<xs:sequence>
<xs:element ref="UD" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="UD">
<xs:complexType>
<xs:sequence>
<xs:element name="titulo" type="xs:string"/>
<xs:element name="descrición" type="xs:string" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="num" type="xs:unsignedByte" use="required"/>
<xs:attribute name="sesións" type="xs:unsignedByte" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>