DOM4J - Problemas ao ler XML Schema

0 respostas
D

Olá Pessoal, tenho uma dúvida, gostaria de compartilhar com vcs, acredito que seja simples a solução.
Possuo um XML Schema em um atributo do tipo String e quero acessar seus elementos, porém não sei como: Segue o código:

import java.io.StringReader;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;

public class PresettingBean {

	public void readXML() throws Exception{
		
		SAXReader reader = new SAXReader();
		Document document = null;
		
		
		String schemaString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
							  "<xs:schema xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">" +
							  "<xs:element name=\"Presetting\" id=\"Presetting\"/>" +
						        "<xs:complexType>" +
					             "<xs:sequence>" +
					                
					                 "<xs:element name=\"Atributo001\"  minOccurs=\"1\" maxOccurs=\"1\" id=\"Atributo001\">" +                   
					                     "<xs:complexType>" + 
					                         "<xs:sequence>" +
					                             "<xs:element name=\"Nome\" type=\"xs:string\" fixed=\"Marca do Carro\" id=\"Nome\"/>" +
					                             "<xs:element name=\"Valor\" id=\"Valor\">" +
					                                 "<xs:simpleType>" + 
					                                     "<xs:restriction base=\"xs:string\">" +
					                                         "<xs:enumeration value=\"Audi\"/>" +
					                                         "<xs:enumeration value=\"BMW\"/>" +
					                                         "<xs:enumeration value=\"Ferrari\"/>" +
					                                     "</xs:restriction>" +
					                                 "</xs:simpleType>" +
					                             "</xs:element>" +
					                         "</xs:sequence>" +                         
					                    "</xs:complexType>" +
					                 "</xs:element>" +
								 
					             "</xs:sequence>" +     
					            "</xs:complexType>" +
							  "</xs:schema>";
		
		
		try
		{
			document = reader.read(new StringReader(schemaString));
		} 
		catch (DocumentException e)
		{
			throw new Exception("Erro ao ler o XML", e);
		}

		
		Element rootElement = document.getRootElement();
		String identifier= rootElement.valueOf("@Presetting");

Eu gostaria de conseguir acessar os seguintes valores do meu schema:
Atributo001
Nome
Valor (Lista)

Como eu poderia fazer isso?
Obs1: o comando "String identifier= rootElement.valueOf("@Presetting")" não está retornando nada.
Obs2: Não quero realizar validação nesta etapa... quero apenas acessar os elementos que retornei acima, pois baseados neles tomarei algumas decisões na minha regra de negócios.

Obrigado.

Criado 13 de abril de 2009
Respostas 0
Participantes 1