Closed ghost closed 1 year ago
FALATA ASSIGNAR XSD A XML
Funcio:
public static String xsd(String[] liniesNoms) {
//Hem fet la capsalera del xsd
String xsd="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"
+ "<xs:schema xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" elementFormDefault=\"qualified\">\r\n"
+ " <xs:element name=\"dadesGenerades\">\r\n"
+ " <xs:complexType>\r\n"
+ " <xs:sequence>\r\n"
+ " <xs:element ref=\"dades\"/>\r\n"
+ " </xs:sequence>\r\n"
+ " </xs:complexType>\r\n"
+ " </xs:element>\n"
+ " <xs:element name=\"dades\">\r\n"
+ " <xs:complexType>\r\n"
+ " <xs:sequence>\r\n"
+ " <xs:element ref=\"Registre\" maxOccurs=\"unbounded\"/>\r\n"
+ " </xs:sequence>\r\n"
+ " </xs:complexType>\r\n"
+ " </xs:element>\r\n"
+ " <xs:element name=\"Registre\">\r\n"
+ " <xs:complexType>\r\n"
+ " <xs:sequence>\n";
//fem aquest bucle per agafar els noms dels camps per ordre
for (int i=0;i<liniesNoms.length;i++) {
xsd=xsd+" <xs:element name=\""+liniesNoms[i]+"\" type=\"xs:string\"/>\n";
}
//fem el tancaments finals
xsd=xsd+" </xs:sequence>\r\n"
+ " </xs:complexType>\r\n"
+ " </xs:element>\r\n"
+ "</xs:schema>\r";
return xsd;
}
Codi afegit al main:
if (linea1Separat[0].equals("XML"))
{
//si el firxer de sortida es XML executarem aquesta funcio per crear el archiu XML corresponent
File sortida=new File("C:\\DAM2\\PROJECTE_1\\Fitxers_sortida\\Fitxer_sortida.xsd");
xml(dadesGenerades,nombreRegistresGenerar);
String text=xsd(liniesNoms);
try (FileWriter escriptor =new FileWriter(sortida);) {
escriptor.append(text).write('\n');
} catch (IOException e) {
System.err.println(e.getMessage());
}
}
https://java.hotexamples.com/es/examples/org.w3c.dom/DOMImplementation/createDocument/java-domimplementation-createdocument-method-examples.html