• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Ferreira

XML Schema: xs:all dentro de xs:sequence

7 mensagens neste tópico

Preciso de definir um XML Schema, em que alguns dos elementos podem estar por uma ordem arbitrária, mas na mesma ordem no conjunto de todos os elementos.

A minha primeira ideia foi uma o xs:all, mas percebi que não o posso fazer dentro do xs:sequence que já tenho.

Qual é a melhor maneira de dar a volta a isto?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para usares o xs:all deverás usar o xs:complexType. Mas não percebi como é que o xs:all resolve o teu problema.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas com o xs:complexType não preciso de criar um elemento novo para corresponder a esse tipo?

A ideia era ter alguns elementos a poderem aparecer por qualquer ordem entre eles. Não é essa a ideia do xs:all?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Precisas de criar um elemento novo (provavelmente até já o criaste), que corresponderá ao pai desses elementos.

<xs:element name="a">
  <xs:complexType>
    <xs:all>
      <xs:element name="b"/>
      <xs:element name="c"/>
      <xs:element name="d"/>
    </xs:all>
  </xs:complexType>
</xs:element>

Por exemplo, no caso acima, os filhos de a podem ser b, c, ou d, e podem ocorrer por qualquer ordem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas o que eu quero não é isso, é ter b, c e d por qualquer ordem sem que estejam dentro de outro elemento (i.e., devem estar no nível em que nesse exemplo está a).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Um documento XML tem sempre uma raiz, por isso irão sempre estar dentro de qualquer coisa.

Agora se pretendes ter mais elementos fora do xs:all ao mesmo nível, não me parece que seja possível.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, o documento tem uma raíz.

A ideia era mesmo ter mais elementos fora do xs:all, mas parece que vou ter de arranjar outra maneira de fazer isto.

Obrigado pela ajuda de qualquer forma. :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora