Skip to content

Instantly share code, notes, and snippets.

@ggazzo
Created September 23, 2015 18:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ggazzo/ca26b23e1a5548156c39 to your computer and use it in GitHub Desktop.
Save ggazzo/ca26b23e1a5548156c39 to your computer and use it in GitHub Desktop.
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="rede-loja">
<xs:complexType>
<xs:sequence>
<xs:element name="holdings">
<xs:complexType>
<xs:sequence>
<xs:element name="holding">
<xs:complexType>
<xs:sequence>
<xs:element name="empresas">
<xs:complexType>
<xs:sequence>
<xs:element name="empresa" maxOccurs="unbounded" minOccurs="0">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="lojas" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="loja" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="lojaDepartamentos">
<xs:complexType>
<xs:sequence>
<xs:element name="lojaDepartamento" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:integer" name="codigoDepartamento" use="required"/>
<xs:attribute type="xs:string" name="nome" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:integer" name="codigoLoja" use="required"/>
<xs:attribute type="xs:string" name="nome" use="required"/>
<xs:attribute type="xs:string" name="dataAbertura" use="required"/>
<xs:attribute type="xs:integer" name="nroFuncionario" use="required"/>
</xs:complexType>
<xs:unique name="codigoLoja">
<xs:selector xpath="."/>
<xs:field xpath="@codigoLoja"/>
</xs:unique>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:integer" name="codigoEmpresa" use="required"/>
<xs:attribute type="xs:string" name="razaoSocial" use="required"/>
<xs:attribute type="xs:string" name="fantasia" use="required"/>
<xs:attribute type="xs:string" name="logradouro" use="required"/>
<xs:attribute type="xs:integer" name="codigoHolding" use="required"/>
</xs:complexType>
<xs:unique name="codigoEmpresa">
<xs:selector xpath="."/>
<xs:field xpath="@codigoEmpresa"/>
</xs:unique>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:integer" name="codigoHolding"/>
<xs:attribute type="xs:string" name="nome"/>
</xs:complexType>
<xs:unique name="codigoHolding">
<xs:selector xpath="."/>
<xs:field xpath="@codigoHolding"/>
</xs:unique>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="secoes">
<xs:complexType>
<xs:sequence>
<xs:element name="secao" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:integer" name="codigoSecao" use="required"/>
<xs:attribute type="xs:string" name="nome" use="required"/>
<xs:attribute type="xs:integer" name="codigoDepartamento" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:unique name="codigoSecao">
<xs:selector xpath="."/>
<xs:field xpath="@codigoSecao"/>
</xs:unique>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="departamentos">
<xs:complexType>
<xs:sequence>
<xs:element name="departamento" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:integer" name="codigoDepartamento" use="required"/>
<xs:attribute type="xs:string" name="nome" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:unique name="codigoDepartamento">
<xs:selector xpath="."/>
<xs:field xpath="@codigoDepartamento"/>
</xs:unique>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="produtos">
<xs:complexType>
<xs:sequence>
<xs:element name="produto">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:integer" name="codigoProduto"/>
<xs:attribute type="xs:string" name="nome"/>
<xs:attribute type="xs:integer" name="codigoCategoria"/>
<xs:attribute type="xs:integer" name="codigoGrade"/>
<xs:attribute type="xs:integer" name="estoqueAtual"/>
<xs:attribute type="xs:integer" name="estoqueMinimo"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:unique name="codigoProduto">
<xs:selector xpath="."/>
<xs:field xpath="@codigoProduto"/>
</xs:unique>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="categorias">
<xs:complexType>
<xs:sequence>
<xs:element name="categoria" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:integer" name="codigoCategoria" use="required"/>
<xs:attribute type="xs:string" name="nome" use="required"/>
<xs:attribute type="xs:integer" name="codigoSecao" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:unique name="codigoCategoria">
<xs:selector xpath="."/>
<xs:field xpath="@codigoCategoria"/>
</xs:unique>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="gradeItems">
<xs:complexType>
<xs:sequence>
<xs:element name="gradeItem" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:integer" name="codigoGradeItem" use="required"/>
<xs:attribute type="xs:string" name="nome" use="required"/>
<xs:attribute type="xs:integer" name="codigoGrade" use="required"/>
<xs:attribute type="xs:integer" name="codigoCor" use="required"/>
<xs:attribute type="xs:integer" name="codigoTamanho" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:unique name="codigoGradeItem">
<xs:selector xpath="."/>
<xs:field xpath="@codigoGradeItem"/>
</xs:unique>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="grades">
<xs:complexType>
<xs:sequence>
<xs:element name="grade" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:integer" name="codigoGrade" use="required"/>
<xs:attribute type="xs:string" name="nome" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:unique name="codigoGrade">
<xs:selector xpath="."/>
<xs:field xpath="@codigoGrade"/>
</xs:unique>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="estoques">
<xs:complexType>
<xs:sequence>
<xs:element name="estoqueGradeItem" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:integer" name="codigoProduto" use="required"/>
<xs:attribute type="xs:integer" name="codigoGradeItem" use="required"/>
<xs:attribute type="xs:integer" name="estoqueAtual" use="required"/>
<xs:attribute type="xs:integer" name="estoqueMinimo" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="tamanhos">
<xs:complexType>
<xs:sequence>
<xs:element name="tamanho" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:integer" name="codigoTamanho" use="required"/>
<xs:attribute type="xs:integer" name="value" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:unique name="codigoTamanho">
<xs:selector xpath="."/>
<xs:field xpath="@codigoTamanho"/>
</xs:unique>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="cores">
<xs:complexType>
<xs:sequence>
<xs:element name="cor" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:integer" name="codigoCor" use="required"/>
<xs:attribute type="xs:string" name="value" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:unique name="codigoCor">
<xs:selector xpath="."/>
<xs:field xpath="@codigoCor"/>
</xs:unique>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:key name="corkey">
<xs:selector xpath="cores/cor"/>
<xs:field xpath="@codigoCor"/>
</xs:key>
<xs:keyref name="gradeItemKeyRefCor" refer="corkey">
<xs:selector xpath="gradeItems/gradeItem"/>
<xs:field xpath="@codigoCor"/>
</xs:keyref>
<xs:key name="tamanhokey">
<xs:selector xpath="tamanhos/tamanho"/>
<xs:field xpath="@codigoTamanho"/>
</xs:key>
<xs:keyref name="gradeItemKeyRefTamanho" refer="tamanhokey">
<xs:selector xpath="gradeItems/gradeItem"/>
<xs:field xpath="@codigoTamanho"/>
</xs:keyref>
<xs:key name="codigoGradeItemkey">
<xs:selector xpath="gradeItems/gradeItem"/>
<xs:field xpath="@codigoGradeItem"/>
</xs:key>
<xs:keyref name="estoqueGradeItemKeyRefgradeItem" refer="codigoGradeItemkey">
<xs:selector xpath="estoques/estoqueGradeItem"/>
<xs:field xpath="@codigoGradeItem"/>
</xs:keyref>
<xs:key name="codigoGradekey">
<xs:selector xpath="grades/grade"/>
<xs:field xpath="@codigoGrade"/>
</xs:key>
<xs:keyref name="codigoGradeKeyRefgradeItem" refer="codigoGradekey">
<xs:selector xpath="gradeItems/gradeItem"/>
<xs:field xpath="@codigoGrade"/>
</xs:keyref>
<xs:keyref name="codigoGradeKeyProdutos" refer="codigoGradekey">
<xs:selector xpath="produtos/produto"/>
<xs:field xpath="@codigoGrade"/>
</xs:keyref>
<xs:key name="categoria">
<xs:selector xpath="categorias/categoria"/>
<xs:field xpath="@codigoCategoria"/>
</xs:key>
<xs:keyref name="codigoCategoriaRefProduto" refer="categoria">
<xs:selector xpath="produtos/produto"/>
<xs:field xpath="@codigoCategoria"/>
</xs:keyref>
<xs:key name="produto">
<xs:selector xpath="produtos/produto"/>
<xs:field xpath="@codigoProduto"/>
</xs:key>
<xs:keyref name="codigoCategoriaRefestoqueGradeItem" refer="produto">
<xs:selector xpath="estoques/estoqueGradeItem"/>
<xs:field xpath="@codigoProduto"/>
</xs:keyref>
<xs:key name="departamento">
<xs:selector xpath="departamentos/departamento"/>
<xs:field xpath="@codigoDepartamento"/>
</xs:key>
<xs:keyref name="departamentoRefSecao" refer="departamento">
<xs:selector xpath="secoes/secao"/>
<xs:field xpath="@codigoDepartamento"/>
</xs:keyref>
<xs:keyref name="departamentoReflojaDepartamento" refer="departamento">
<xs:selector xpath="holdings/holding/empresas/empresa/lojas/loja/lojaDepartamentos/lojaDepartamento"/>
<xs:field xpath="@codigoDepartamento"/>
</xs:keyref>
<xs:key name="secao">
<xs:selector xpath="secoes/secao"/>
<xs:field xpath="@codigoSecao"/>
</xs:key>
<xs:keyref name="departamentoRefcategoria" refer="secao">
<xs:selector xpath="categorias/categoria"/>
<xs:field xpath="@codigoSecao"/>
</xs:keyref>
</xs:element>
</xs:schema>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment