I use JAXB to create a hierarchy of folders and files
My model:
@XmlRootElement public class Root { @XmlAttribute private String path; @XmlElement(name = "dir") private ArrayList<Dir> rootContentDirs = null; @XmlElement(name = "file") private ArrayList<FileObj> rootContentFiles = null; public void setRootContentDirs(ArrayList<Dir> rootContentDirs) { this.rootContentDirs = rootContentDirs; } public void setRootContentFiles(ArrayList<FileObj> rootContentFiles) { this.rootContentFiles = rootContentFiles; } public void setPath(String path) { this.path = path; } } public class Dir { @XmlAttribute private String name; @XmlElement(name = "dir") private ArrayList dirs = null; @XmlElement(name = "file") private ArrayList files = null; public void setName(String name) { this.name = name; } public void setDirs(ArrayList dirs) { this.dirs = dirs; } public void setFiles(ArrayList files) { this.files = files; } } public class FileObj{ @XmlAttribute private String name; @XmlAttribute private long size; @XmlAttribute private String type; public void setName(String name) { this.name = name; } public void setSize(long size) { this.size = size; } public void setType(String type) { this.type = type; } }
I want to create a tree of directories and files:
public class XmlByJaxb extends Generator { private static final String JAXB_XML = "./jaxb.xml"; private static Root root = null; @Override public void output() throws IOException { JAXBContext context = null; Marshaller m = null; try { context = JAXBContext.newInstance(Root.class, Dir.class, FileObj.class); m = context.createMarshaller(); m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); m.marshal(root, new File(JAXB_XML)); } catch (JAXBException e) { } } @Override public void run() { ArrayList<FileObj> rootFiles = addFiles(dir); ArrayList<Dir> rootDirs = make(dir); root = new Root(); root.setPath(dir.getPath()); root.setRootContentFiles(rootFiles); root.setRootContentDirs(rootDirs); /.../ }
But I how the weird "xsi: type" and "xmlns: xsi" in the generated xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <root path="/home/phlamey/IdeaProjects/FileUtillite"> <dir name="src"> <dir xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="dir" name="test"> <dir xsi:type="dir" name="java"> /.../
So my question is: what does this mean and how to remove it?
java xml jaxb
far_outer
source share