[Resolvido]Choice XSD

5 respostas
CristianPalmaSola10

Galera eu tenho um xml onde especie um elemento chamado especiedocumento seu valor so poder ser E -> Entrada S -> Saida ou O -> Outro, queria validar o valor que vem no xml pelo meu xsd, e fiz assim usando choise

<xs:complexType name="TEspecieDocumento">
		<xs:annotation>
			<xs:documentation>Tipo Chave do documento</xs:documentation>
		</xs:annotation>
		<xs:choice minOccurs="1" maxOccurs="1">
			<xs:element name="E" type="xs:string" />
			<xs:element name="S" type="xs:string" />
			<xs:element name="O" type="xs:string" />
		</xs:choice>
	</xs:complexType>

so que para funcionar meu xml ficou assim

<especiedocumento>
                 <E>E</E>
             </especiedocumento>

No entanto enves de dentro da tag especiedocumento eu ter outra tag com o valor eu queria que tivesse so o valor, e que meu xsd validassse o valor para mim, sendo valores possiveis apenas E,S,O , dei uma pesquisada na net mas naum achei nada que me ajudasse significativamente, se puderem me ajudar fico muito grato

Tem como fazer isso?

5 Respostas

Rodrigo_Sasaki

algo tipo:<especiedocumento value="E"></especiedocumento>

E definir os valores permitidos no value?

Não sei se tem como fazer isso com XSD, cara, acho que não.

CristianPalmaSola10

É digaoneves pode ser assim conseguindo ler o valor que veio depois beleza

asssim

&lt;especiedocumento value="E"&gt;&lt;/especiedocumento&gt;  

ou assim

&lt;especiedocumento&gt;E&lt;/especiedocumento&gt;

desde que eu consigua ler o valor e que o xsd faça a validação pra mim, é o que precisso

Rodrigo_Sasaki
<xs:element name="especieDocumento" type="especieDocumentoType"/>

<xs:simpleType name="especieDocumentoType">
  <xs:restriction base="xs:string">
    <xs:enumeration value="E"/>
    <xs:enumeration value="S"/>
    <xs:enumeration value="O"/>
  </xs:restriction>
</xs:simpleType>
ou
<xs:element name="especieDocumento" type="especieDocumentoType"/>

<xs:simpleType name="especieDocumentoType">
  <xs:restriction base="xs:string">
    <xs:pattern value="[ESO]"/>
  </xs:restriction>
</xs:simpleType>

http://www.w3schools.com/schema/schema_facets.asp

CristianPalmaSola10

Consegui resolver digaoneves, consegui fazer a validação do jeito que preciso no xsd

&lt;xs:simpleType name="TEspecieDocumento"&gt;
		&lt;xs:annotation&gt;
			&lt;xs:documentation&gt;Tipo Chave do documento&lt;/xs:documentation&gt;
		&lt;/xs:annotation&gt;
		&lt;xs:restriction base="xs:string"&gt;
			&lt;xs:enumeration value="E"&gt;&lt;/xs:enumeration&gt;
			&lt;xs:enumeration value="S"&gt;&lt;/xs:enumeration&gt;
			&lt;xs:enumeration value="O"&gt;&lt;/xs:enumeration&gt;
		&lt;/xs:restriction&gt;
	&lt;/xs:simpleType&gt;

Value pela resposta digaoneves

Ate mais

CristianPalmaSola10

Mandamos a solução praticamente juntos kkkkkkkk

Criado 5 de julho de 2012
Ultima resposta 5 de jul. de 2012
Respostas 5
Participantes 2