Dúvidas com Pattern do XSD para cnpj ou cpf [RESOLVIDO]

2 respostas
vmwanderlind

Pessoal, bom dia!

Estou com uma dúvida, preciso criar um XSD que valide cnpj ou cpf, já realizei vários testes aqui mas sem exito, ao tentar validar os xml ele apresenta erro.

Segue abaixo o código:

<xs:element name="cnpj">
	<xs:simpleType>
		<xs:restriction base="xs:string">
			<xs:minLength value="14" />
			<xs:maxLength value="18" />
			<xs:pattern value="(\d{2}.\d{3}.\d{3}/\d{4}-\d{2})|(\d{3}.\d{3}.\d{3}\-d{2})" />
		</xs:restriction>
	</xs:simpleType>							
</xs:element>

Agradeço se alguém puder ajudar

2 Respostas

vmwanderlind

Pessoal preciso de ajuda,

fiz o teste com o seguinte código no java e ele validou tanto um CPF quanto um CNPJ,
o problema está no XSD.

"(^(\\d{2}\\.\\d{3}\\.\\d{3}\\/\\d{4}\\-\\d{2})|^(\\d{3}\\.?\\d{3}\\.?\\d{3}\\-?\\d{2}))"

ele apresenta o seguinte erro:

error: cvc-datatype-valid.1.1: string value '00.000.000/0001-00' does not match pattern for type of cnpj element in type of parceiro element in type of element envioSGDL
vmwanderlind

Pessoal, segue abaixo como consegui resolver!

<xs:simpleType>
	<xs:restriction base="xs:string">
		<xs:pattern value="((\d{2}\.\d{3}\.\d{3}\/\d{4}\-\d{2})|(\d{3}\.\d{3}\.\d{3}\-\d{2}))" />
	</xs:restriction>
</xs:simpleType>
Criado 23 de agosto de 2012
Ultima resposta 23 de ago. de 2012
Respostas 2
Participantes 1