Solución a Esquema XML do Bánco Simpático Galego

De MediaWiki
Revisión del 19:36 18 ago 2022 de Joselv (discusión | contribuciones) (Página creada con « <syntaxhighlight lang="XML> XSD – banco.xsd <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wmh="http://www.wmhe…»)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Ir a la navegación Ir a la búsqueda
XSD – banco.xsd 
<?xml version="1.0" encoding="utf-8"?>
<xs:schema
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:wmh="http://www.wmhelp.com/2003/eGenerator" elementFormDefault="qualified">
  <xs:group name="nomeCompleto">
    <xs:sequence>
      <xs:element name="nome" type="nomeCorto"/>
      <xs:element name="apelido1" type="nomeCorto"/>
      <xs:element name="apelido2" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="banco">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="nome" type="nomeLongo"/>
        <xs:element ref="presidente"/>
        <xs:element ref="dataCreación"/>
        <xs:element ref="sucursais"/>
        <xs:element ref="empregados"/>
      </xs:sequence>
      <xs:attribute name="codigo" type="tipoCodigo" fixed="4444"/>
      <xs:attribute name="abreviatura" type="xs:string"/>
    </xs:complexType>
    <xs:key name="sucursal">
      <xs:selector xpath="sucursais/sucursal"/>
      <xs:field xpath="@codigo"/>
    </xs:key>
    <xs:keyref name="departamento" refer="sucursal">
      <xs:selector xpath="empregados/empregado"/>
      <xs:field xpath="sucursal"/>
    </xs:keyref>
  </xs:element>
  <xs:element name="presidente">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="nomeCompleto"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="dataCreación">
    <xs:complexType>
      <xs:attribute name="día" type="xs:string" use="required"/>
      <xs:attribute name="mes" type="xs:string" use="required"/>
      <xs:attribute name="ano" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="sucursais">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="sucursal" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="sucursal">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="superficie"/>
      </xs:choice>
      <xs:attribute name="codigo" type="tipoCodigo"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="superficie">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
UD3-PR.02 – XSD solución LMSXI
3

          <xs:attribute name="unidade" type="xs:string" fixed="m2"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="empregados">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="empregado" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="empregado">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="nomeCompleto"/>
        <xs:element name="sucursal" type="xs:string"/>
        <xs:element name="cargo" type="tipoCargo" nillable="true"/>
      </xs:sequence>
      <xs:attribute name="codigo" type="tipoCodigoEmpregado" use="required"/>
      <xs:attribute name="NSS" type="tipoNSS" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="tipoCodigo">
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9][0-9][0-9][0-9]"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="nomeCorto">
    <xs:restriction base="xs:string">
      <xs:maxLength value="30"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="nomeLongo">
    <xs:restriction base="xs:string">
      <xs:maxLength value="150"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="tipoNSS">
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{12}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="tipoCodigoEmpregado">
    <xs:restriction base="xs:string">
      <xs:maxLength value="6"/>
      <xs:pattern value="E[AEIOU]([3-6][3-6]|9)[a-z]{2,3}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="tipoCargo">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Director"/>
      <xs:enumeration value="Interventor"/>
      <xs:enumeration value="outros"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>