Empezando con estructura y elementos

This commit is contained in:
Salatiel Genol 2022-11-28 22:23:16 +01:00
parent 29f5ee329e
commit 2ad629cfac
1 changed files with 33 additions and 14 deletions

47
xsd.md
View File

@ -1,12 +1,12 @@
## Documentación XML Schema (XSD)
#### Definición
### Definición
XSD (XML Schema Definition) es un lenguaje, también llamado simplemente XML Schema, que sirve para definir la estructura de un documento XML, permitiendo su validación.
#### Declaracion de un archivo XSD y su vinculacion al XML
### Declaracion de un archivo XSD y su vinculacion al XML
##### Sin espacio de nombres asociado
#### Sin espacio de nombres asociado
Al usar la etiqueta noNamespaceSchemaLocation, podemos usar un archivo xsd sin namespace asociado
@ -28,7 +28,21 @@ Al usar la etiqueta noNamespaceSchemaLocation, podemos usar un archivo xsd sin n
</etiqueta_raiz>
```
##### Con espacio de nombres personalizado
#### Con espacio de nombres personalizado
schemaLocation necesita dos valores:
- La url del espacio de nombres.
- La ubicacion del archivo con el esquema del espacio de nombres.
```xml
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!-- archivo.xml -->
<custom:etiqueta_raiz xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://custom.url archivo.xsd"
xmlns:custom="https://custom.url">
<custom:contenido/>
</custom:etiqueta_raiz>
```
- targetNamespace define el espacio de nombres para este esquema.
- xmlns especifica que este es el espacio de nombres por defecto.
@ -46,16 +60,21 @@ elementFormDefault="qualified">
</xs:element>
</xs:schema>
```
schemaLocation necesita dos valores:
- La url del espacio de nombres.
- La ubicacion del archivo con el esquema del espacio de nombres.
### Estructura y elementos
#### Elementos simples
Los elementos simples solo pueden contener texto. La diferencia entre fixed y default es que en que con fixed, el valor no se puede modificar, tiene que ser ese, y con default si es modificable.
```xml
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!-- archivo.xml -->
<custom:etiqueta_raiz xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://custom.url archivo.xsd"
xmlns:custom="https://custom.url">
<custom:contenido/>
</custom:etiqueta_raiz>
<xs:element name="nombre_del_elemento" type="tipo_de_dato"/>
<xs:element name="nombre_del_elemento" type="tipo_de_dato" fixed="cadena"/>
<xs:element name="nombre_del_elemento" type="tipo_de_dato" default="cadena"/>
```
#### Atributos
```xml
<xs:attribute name="nombre_del_atributo" type="tipo_de_dato"/>
```