Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Andrey Knupp Vital

[Resolvido] XML Schema ..

Recommended Posts

Bom gente, eu tenho uma dúvida em relação à XMLSchema, .xsd, arquivo que uso para validar alguns XML's que recebo ..

porém, preciso impor uma nova regra nos atributos de algumas nodes ? que regra ? trata-se do requerimento desse atributo em tal node, isso eu já resolvi, afinal, de uma maneira bem elegante .. com DTD's :nataldry:

 

Só que ainda assim, eu tive que mudar a pouco tempo, pois ainda tem uma definição de caracteres permitidos nesse atributo, simplesmente .. posso aplicar um 'restriction' na schema, isso resolve um dos meus problemas

 

              
<xsd:attribute name="environment" use="required">
      <xsd:simpleType>
             <xsd:restriction base="xsd:string">
                    <xsd:minLength value="3" />
                    <xsd:maxLength value="19" />
             </xsd:restriction>
      </xsd:simpleType>
</xsd:attribute>

 

Agora .. virando o disco, esse atributo porta a referencia de um atributo em uma node, estamos falando de uma coisa parecida com 'IDs' ..

 

<node use="..." />

 

Esse uso no caso seria o valor do atributo em que a outra node deve conter também 'um link' ..

<otherNode name="..." />

 

O problema, eu preciso validar esse relacionamento, caso não exista essa identificação, o xml é considerado inválido, não vou entrar em detalhes técnicos .. e isso NÃO deve ser validado no PHP, eu já tenho meus esquemas funcionando e não dá pra mecher no soap, se não eu que vou criar mais problemas

 

A primeira idéia minha foi utilizar XPath, SÓ que ainda assim, resta como eu iria pegar o valor desse atributo ( talvez com XSLT ) .. alguém teria idéia de como criar a validação ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Podem fechar o tópico, já consegui resolver, utilizei um key-ref .. não sabia desse elemento no XSD, daí com um pouco de pesquisa, acabei achando a solução, não foi somente isso mas .. o resto é coisa que não consta nós problemas mencionados nesse tópico

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.