Olá pessoal!!!
Estou com uma dívida com XSD Schema. Uso um metodo para validar meu XML, quando esta invalido segundo o que defino no meu XSD ele gerar o erro certinho.
Minha duvida é que quando defino um element no meu XSD como:
se eu passar minha tag <sigla></sigla> assim vazia, ele atribui o valor default para “SC”, correto?
Mas essa atribuição é inserida no meu XML original?
Por que o metodo que uso ele faz a validação do XML e retorna um erro ou uma menssagem de exito conforme o resultado.
Minha duvida é essa, se através do XSD Schema eu posso inserir um valor no XML?
Por favor se não fui claro me avisem tentei ser o mais objetivo possivel sem escrever uma montoeira de códigos.
Quando você usa (ou ) é usado o valor “” (vazio), não o valor default.
O valor “default” é assumido quando você omite o elemento . Isso indica, obviamente, que a tag deve ser opcional.
E
entanglement
“No value” != “empty value”
E
evandrofel
Valeu pela resposta entanglement !!! Isso que você citou eu entendi. Mas minha duvida permanece.
Se eu omitir a tag
<sigla></sigla>
e tentar validar com o XSD, em que momento
e como o XSD inseri o valor default="SC"?
O metodo que estou usando para validar é esse:
publicstaticStringValidaDoc(StringstringXml,StringxsdFileName){//Define o tipo de - we use W3C StringschemaLang="http://www.w3.org/2001/XMLSchema";//valida driver SchemaFactoryfactory=SchemaFactory.newInstance(schemaLang);// try{URLxsdPath=Valida.class.getResource("/schemas/"+xsdFileName);Schemaschema=factory.newSchema(newStreamSource(xsdPath.toURI().toString()));Validatorvalidator=schema.newValidator();//Perform the validation: validator.validate(newStreamSource(newStringReader(stringXml)));DocumentBuilderFactoryfact=DocumentBuilderFactory.newInstance();DocumentBuilderbuilder=fact.newDocumentBuilder();builder.parse(newInputSource(newStringReader(stringXml)));}catch(Exceptione){if(einstanceofSAXParseException)return"XML Parse Error on Col: "+((SAXParseException)e).getColumnNumber()+" | Lin: "+((SAXParseException)e).getLineNumber()+" - "+((SAXParseException)e).getLocalizedMessage();elsereturn"Unknow error attemping to validate XML.";}return"";}