Если у вас есть JDK6;
xjc находится в папке bin / вашего JDK, что-то вроде C: \ Program Files (x86) \ Java \ jdk1.6.0_20 \ bin \ xjc.exe
JDK поставляется с jaxb, хотя могут быть более новые версии, начиная с http://jaxb.java.net/ или других доступных реализаций, вам, вероятно, не нужно беспокоиться об этом на данный момент.
JAXB может делать много вещей, я не совсем уверен, что именно вы пытаетесь достичь.Если у вас есть xsd, вы можете сгенерировать из него java-классы, запустив, например,
xjc -p com.mypackage myschema.xsd
и включить сгенерированные классы в ваш проект (как правило, вы запускаете его как часть процесса сборки).
Или я могу определить объект для сопоставления XSD, чтобы я мог контролировать сопоставление, а не генерацию кода по умолчанию?
Сгенерированные классы - это просто pojos с некоторымианнотации, вы можете создать эти классы самостоятельно и полностью контролировать отображение с помощью аннотаций.
Как уже говорилось, jaxb может делать много вещей, вот лишь несколько основных примеров, SearchParam / SearchType - это класс, сгенерированныйxjc из небольшого пользовательского файла .xsd
Сериализация объекта в файл XML
JAXBContext context = JAXBContext.newInstance(SearchParam.class);
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
List<String> hours = new LinkedList<String>();
hours.add("2009.12.11");
hours.add("2009.12.13");
SearchParam param = new SearchParam();
param.setFilter("greater");
param.setHours(hours);
param.setSearchType(SearchType.Fuzzy);
marshaller.marshal(param, new FileWriter("/tmp/SearchParam.xml"));
Десериализация файла XML
JAXBContext context = JAXBContext.newInstance(SearchParam.class);
Unmarshaller unMarshaller = context.createUnmarshaller();
SearchParam param = (SearchParam) unMarshaller.unmarshal(
new FileInputStream("/tmp/SearchParam.xml"));
Десериализацию и проверку схемы
JAXBContext context = JAXBContext.newInstance(SearchParam.class);
Unmarshaller unMarshaller = context.createUnmarshaller();
Schema schema = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI)
.newSchema(new File("/tmp/schema1.xsd"));
unMarshaller.setSchema(schema);
SearchParam param = unMarshaller.unmarshal(
new FileInputStream("/tmp/SearchParam.xml"));
Дополнительная информация