[XML / XSD] Diferença entre usar ATRIBUTE e ELEMENT

5 respostas
G

Olá a todos!

Preciso criar um Complex Type com dois atributos: responseCode e responseMessage. Ambos devem ser String e devem ser obrigatórios. Daí me veio a dúvida: Qual a diferença efetiva entre:

<xs:complexType name="responseObject">
		<xs:sequence>
			<xs:element name="responseCode" type="xs:string" minOccurs="1" maxOccurs="1"/>
			<xs:element name="responseMessage" type="xs:string" minOccurs="1" maxOccurs="1"/>
		</xs:sequence>
	</xs:complexType>

e isso

<xs:complexType name="responseObject"> <xs:attribute name="responseCode " type="xs:string" use="required"/> <xs:attribute name="responseMessage " type="xs:string" use="required"/> </xs:complexType>
?

Grato,
Guilherme

5 Respostas

E

A diferença é que você pode ter vários elementos aninhados do mesmo tipo:

<biblioteca> <livro /> <livro /> <livro /> <livro /> </biblioteca>

Além disso, a ordem dos atributos não pode ser definida.

G

Olá esmiralha, muito obrigado pela rapidez da resposta.

Então efetivamente não há diferença? Qual seria mais adequado no meu caso? :slight_smile:

A

ve se ajuda ai:
http://www.w3schools.com/schema/schema_simple_attributes.asp
e
http://www.w3schools.com/schema/schema_simple.asp

E

guilhermealcantara:
Olá esmiralha, muito obrigado pela rapidez da resposta.

Então efetivamente não há diferença? Qual seria mais adequado no meu caso? :slight_smile:

Cara, se o texto for longo, eu acho mais natural usar elemento. Uma mensagem pode ser longa, ter quebra de linha, caracteres especiais, etc. Eu recomendaria elementos, nesse caso.

A

Aproveitando o gancho dessa dúvida, eu consigo deixar um element como obrigatório da mesma forma que o attribute? Um use=“required”…por exemplo.

Obrigado amigos.

Criado 12 de janeiro de 2011
Ultima resposta 30 de mai. de 2011
Respostas 5
Participantes 4