Generando dinámicamente el esquema XML

Estoy tratando de generar dinámicamente un esquema XML usando Xerces-J y obteniendo el siguiente error, agradezco cualquier ayuda al respecto.

DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
dbfac.setNamespaceAware(true);

DocumentBuilder docBuilder = dbfac.newDocumentBuilder();
Document doc = docBuilder.newDocument();

Element schema = doc.createElement("xs:schema");           
schema.setAttribute("xmlns:xs", "http://www.w3.org/2001/XMLSchema");
doc.appendChild(schema);

Element e = doc.createElement("xs:element");            
e.setAttribute("name", "test");
e.setAttribute("type", "xs:string");

schema.appendChild(e);

TransformerFactory transfac = TransformerFactory.newInstance();
Transformer trans = transfac.newTransformer();
trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
trans.setOutputProperty(OutputKeys.INDENT, "yes");

//create string from xml tree
StringWriter sw = new StringWriter();
StreamResult result = new StreamResult(sw);
DOMSource source = new DOMSource(doc);

trans.transform(source, result);
String xmlString = sw.toString();

System.out.println(xmlString);

SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);

Schema schema1 = schemaFactory.newSchema(source);

Output is

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="test" type="xs:string"/>
</xs:schema>

org.xml.sax.SAXParseException: s4s-elt-schema-ns: El espacio de nombres del elemento 'xs: schema' debe ser del espacio de nombres de esquema, 'http://www.w3.org/2001/XMLSchema'.

Respuesta 1

Para este problema, debo escribir un método llamado modo que devuelve el elemento más frecuente de una matriz de enteros. Suponga que la matriz tiene al menos un elemento y que cada elemento ...

Estoy un poco confundido en este momento. Intenté eso: Prueba de cadena = "KP 175.105"; test.replace ("KP", ""); System.out.println (prueba); y obtuve: KP 175.105 Sin embargo, quiero: 175.105 ¿Qué pasa? ...

HashMap <Entero, ArrayList <Integer>> cityMap = new HashMap <> (); ... para (ArrayList <Integer> list: cityMap.values ​​()) {int size = list.size (); if (tamaño> 0) {...

Quiero impulsar una consulta en Lucene 7. En las versiones anteriores (<6) solo estaba usando el método setBoost (float boost). es decir, TermQuery termQuery = new TermQuery (nuevo término ("campo", "valor")); ...