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.