Qual a diferença entre xsd:complexType/ e xsd:element/?
obrigado
Qual a diferença entre xsd:complexType/ e xsd:element/?
obrigado
Bem, acho que os nomes já falam tudo.
Um element, é isso e apenas isso, um elemento, único e com atributos:
<xs:element name="Codigo" type="tipos:tpCodigoEvento" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>Código do evento.</xs:documentation>
</xs:annotation>
</xs:element>
Já um complexType é uma sequencia de Elements
<xs:complexType name="tpEvento">
<xs:sequence>
<xs:element name="Codigo" type="tipos:tpCodigoEvento" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>Código do evento.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Descricao" type="tipos:tpDescricaoEvento" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Descrição do enveto.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:choice minOccurs ="0" maxOccurs ="1">
<xs:annotation>
<xs:documentation>Chave para identificação da origem do evento.</xs:documentation>
</xs:annotation>
<xs:element name="ChaveRPS" type="tipos:tpChaveRPS" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>Chave do RPS.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ChaveNFe" type="tipos:tpChaveNFe" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>Chave da NFe.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
</xs:sequence>
</xs:complexType>
É isso eu observei no xml…
mais só o complexType que gera a classe né?:
se sim…
para que criar o element sozinho?
^^ Alguem?
Use o schemagem para gerar o XSD
http://www.guj.com.br/java/107734-gerar-xsd-a-partir-de-classe-java
minha dúvida não é essa =S
Uma classe é um ComplexType
Então ela só pode ser gerada a partir de um.
Só uma classe tão simples que só tivesse um atributo podeira ser um Element.
E daí não justificaria o uso de uma classe, bastaria que esse Element fosse
parte de outra classe com um atributo dela.
Deixa eu explicar melhor. Filosoficamente uma classe chamada
Carro e que só tenha um atributo nrPortas não faz sentido, certo?
Para que ter o trabalho de criar uma classe se em qualquer lugar bastaria
a informação nrPortas como variavel.
Então sim, classes são por conseguinte, ComplexTypes e só são gerados
a partir deles.
Ah, o Element sozinho serve apenas para isolar Elementos isolados dentro de um complexType.
Imagine que você está fazendo xml de informacoes cadastrais de pessoas.
O nome é um element, o endereço (Rua, numero, bairro, cidade, estado) , é um complexType dentro do complexType total da classe, e cheio de Element isolados.
o cpf é outro element sozinho dentro do ComplexType pessoa.
Espero ter explicado .
mais o Element não gera classe né?
ele é um “atributo” para ser usado dentro do complexType