import com.sun.codemodel.*; import com.sun.tools.xjc.api.*; import org.xml.sax.InputSource; // Configure sources & output String schemaPath = "path/to/schema.xsd"; String outputDirectory = "schema/output/source/"; // Setup schema compiler SchemaCompiler sc = XJC.createSchemaCompiler(); sc.forcePackageName("com.xyz.schema.generated"); // Setup SAX InputSource File schemaFile = new File(schemaPath); InputSource is = new InputSource(new FileInputStream(schemaFile)); is.setSystemId(schemaFile.getAbsolutePath()); // Parse & build sc.parseSchema(is); S2JJAXBModel model = sc.bind(); JCodeModel jCodeModel = model.generateCode(null, null); jCodeModel.build(new File(outputDirectory));
public String getType(QName qname, boolean element) { TypeAndAnnotation typeAnno = rawJaxbModelGenCode.getJavaType(qname); if (element) { Mapping mapping = rawJaxbModelGenCode.get(qname); if (mapping != null) { typeAnno = mapping.getType(); } } if (typeAnno != null && typeAnno.getTypeClass() != null) { return typeAnno.getTypeClass().fullName(); } return null; }
/** * Constructor that fills in the values from the given raw model */ public JAXBModel( com.sun.tools.xjc.api.JAXBModel rawModel ) { this.rawJAXBModel = rawModel; if(rawModel instanceof S2JJAXBModel){ S2JJAXBModel model = (S2JJAXBModel)rawModel; List<JAXBMapping> ms = new ArrayList<JAXBMapping>(model.getMappings().size()); for( Mapping m : model.getMappings()) ms.add(new JAXBMapping(m)); setMappings(ms); } }
JCodeModel codeModel = jaxbModel.generateCode(null, null); FileCodeWriter writer = new FileCodeWriter(outputDir); codeModel.build(writer); Collection mappings = jaxbModel.getMappings(); message.getParameter(Constants.UNWRAPPED_KEY) != null) { Mapping mapping = jaxbModel.get(message.getElementQName()); List elementProperties = mapping.getWrapperStyleDrilldown(); for(int j = 0; j < elementProperties.size(); j++){ message.getParameter(Constants.UNWRAPPED_KEY) != null) { Mapping mapping = jaxbModel.get(message.getElementQName()); List elementProperties = mapping.getWrapperStyleDrilldown(); for(int j = 0; j < elementProperties.size(); j++){
public static String boxify(QName xmlTypeName, S2JJAXBModel jaxbModel) { TypeAndAnnotation typeAndAnnotation = jaxbModel.getJavaType(xmlTypeName); if (typeAndAnnotation == null) { return null; } return typeAndAnnotation.getTypeClass().boxify().fullName(); }
for (JClass cls : schem2JavaJaxbModel.getAllObjectFactories()) { classCollector.getTypesPackages().add(cls._package().name()); JCodeModel jcodeModel = schem2JavaJaxbModel.generateCode(null, null);
public String getWrappedElementType(QName wrapperElement, QName item) { Mapping mapping = rawJaxbModelGenCode.get(wrapperElement); if (mapping != null) { List<? extends Property> propList = mapping.getWrapperStyleDrilldown(); if (propList != null) { for (Property pro : propList) { if (pro.elementName().getNamespaceURI().equals(item.getNamespaceURI()) && pro.elementName().getLocalPart().equals(item.getLocalPart())) { return pro.type().fullName(); } } } } return null; }
private void writeXmlSeeAlso(JDefinedClass cls) { if (model.getJAXBModel().getS2JJAXBModel() != null) { List<JClass> objectFactories = model.getJAXBModel().getS2JJAXBModel().getAllObjectFactories(); //if there are no object facotires, dont generate @XmlSeeAlso if (objectFactories.isEmpty()) { return; } JAnnotationUse xmlSeeAlso = cls.annotate(cm.ref(XmlSeeAlso.class)); JAnnotationArrayMember paramArray = xmlSeeAlso.paramArray("value"); for (JClass of : objectFactories) { paramArray = paramArray.param(of); } } }
JCodeModel codeModel = jaxbModel.generateCode(null, null); FileCodeWriter writer = new FileCodeWriter(outputDir, cgconfig.getOutputEncoding()); codeModel.build(writer); for (Mapping mapping : jaxbModel.getMappings()) { QName qn = mapping.getElement(); String typeName = mapping.getType().getTypeClass().fullName(); message.getParameter(Constants.UNWRAPPED_KEY) != null) { Mapping mapping = jaxbModel.get(message.getElementQName()); for (Property elementProperty : mapping.getWrapperStyleDrilldown()) { QName partQName = message.getParameter(Constants.UNWRAPPED_KEY) != null) { Mapping mapping = jaxbModel.get(message.getElementQName()); for (Property elementProperty : mapping.getWrapperStyleDrilldown()) { QName partQName =
public static String getJType(QName xmlTypeName, S2JJAXBModel jaxbModel, boolean boxify) { if (jaxbModel == null) { return getJType(xmlTypeName.getNamespaceURI(), xmlTypeName.getLocalPart()); } TypeAndAnnotation typeAndAnnotation = jaxbModel.getJavaType(xmlTypeName); if (typeAndAnnotation == null) { return getJType(xmlTypeName.getNamespaceURI(), xmlTypeName.getLocalPart()); } if (boxify) { return typeAndAnnotation.getTypeClass().boxify().fullName(); } else { return typeAndAnnotation.getTypeClass().fullName(); } }
for (JClass cls : schem2JavaJaxbModel.getAllObjectFactories()) { classCollector.getTypesPackages().add(cls._package().name()); JCodeModel jcodeModel = schem2JavaJaxbModel.generateCode(null, null);
public String getWrappedElementType(QName wrapperElement, QName item) { Mapping mapping = rawJaxbModelGenCode.get(wrapperElement); if (mapping != null) { List<? extends Property> propList = mapping.getWrapperStyleDrilldown(); if (propList != null) { for (Property pro : propList) { if (pro.elementName().getNamespaceURI().equals(item.getNamespaceURI()) && pro.elementName().getLocalPart().equals(item.getLocalPart())) { return pro.type().fullName(); } } } } return null; }
private void writeXmlSeeAlso(JDefinedClass cls) { if (model.getJAXBModel().getS2JJAXBModel() != null) { List<JClass> objectFactories = model.getJAXBModel().getS2JJAXBModel().getAllObjectFactories(); //if there are no object facotires, dont generate @XmlSeeAlso if (objectFactories.isEmpty()) { return; } JAnnotationUse xmlSeeAlso = cls.annotate(cm.ref(XmlSeeAlso.class)); JAnnotationArrayMember paramArray = xmlSeeAlso.paramArray("value"); for (JClass of : objectFactories) { paramArray = paramArray.param(of); } } }
SchemaCompiler sc = XJC.createSchemaCompiler(); File file = null; file = new File("Item.xsd"); sc.parseSchema(new InputSource(file.toURI().toString())); S2JJAXBModel model = sc.bind(); JCodeModel cm = model.generateCode(null, null); cm.build(new File("."));
public String getType(QName qname, boolean element) { TypeAndAnnotation typeAnno = rawJaxbModelGenCode.getJavaType(qname); if (element) { Mapping mapping = rawJaxbModelGenCode.get(qname); if (mapping != null) { typeAnno = mapping.getType(); } } if (typeAnno != null && typeAnno.getTypeClass() != null) { return typeAnno.getTypeClass().fullName(); } return null; }
/** * @param part * @return Returns a JAXBType object */ private JAXBType getJAXBType(MessagePart part) { JAXBType type; QName name = part.getDescriptor(); if (part.getDescriptorKind().equals(SchemaKinds.XSD_ELEMENT)) { type = getJAXBModelBuilder().getJAXBType(name); if(type == null){ error(part, ModelerMessages.WSDLMODELER_JAXB_JAVATYPE_NOTFOUND(name, part.getName())); } } else { S2JJAXBModel jaxbModel = getJAXBModelBuilder().getJAXBModel().getS2JJAXBModel(); TypeAndAnnotation typeAnno = jaxbModel.getJavaType(name); if (typeAnno == null) { error(part, ModelerMessages.WSDLMODELER_JAXB_JAVATYPE_NOTFOUND(name, part.getName())); } JavaType javaType = new JavaSimpleType(new JAXBTypeAndAnnotation(typeAnno)); type = new JAXBType(new QName("", part.getName()), javaType); } return type; }
public DefaultValueWriter createDefaultValueWriterForWrappedElement(QName wrapperElement, QName item) { if (defaultValues != null) { Mapping mapping = rawJaxbModelGenCode.get(wrapperElement); if (mapping != null) { List<? extends Property> propList = mapping.getWrapperStyleDrilldown(); for (Property pro : propList) { if (pro.elementName().getNamespaceURI().equals(item.getNamespaceURI()) && pro.elementName().getLocalPart().equals(item.getLocalPart())) { JType type = pro.type(); if (type instanceof JDefinedClass && ((JDefinedClass)type).isAbstract()) { //no default values for abstract classes return null; } return new JAXBDefaultValueWriter(pro.type()); } } } } return null; }
/** * Constructor that fills in the values from the given raw model */ public JAXBModel( com.sun.tools.xjc.api.JAXBModel rawModel ) { this.rawJAXBModel = rawModel; if(rawModel instanceof S2JJAXBModel){ S2JJAXBModel model = (S2JJAXBModel)rawModel; List<JAXBMapping> ms = new ArrayList<JAXBMapping>(model.getMappings().size()); for( Mapping m : model.getMappings()) ms.add(new JAXBMapping(m)); setMappings(ms); } }
private void writeXmlSeeAlso(JDefinedClass cls) { if (model.getJAXBModel().getS2JJAXBModel() != null) { List<JClass> objectFactories = model.getJAXBModel().getS2JJAXBModel().getAllObjectFactories(); //if there are no object facotires, dont generate @XmlSeeAlso if (objectFactories.isEmpty()) { return; } JAnnotationUse xmlSeeAlso = cls.annotate(cm.ref(XmlSeeAlso.class)); JAnnotationArrayMember paramArray = xmlSeeAlso.paramArray("value"); for (JClass of : objectFactories) { paramArray = paramArray.param(of); } } }
SchemaCompiler sc = XJC.createSchemaCompiler(); File file = new File("D:\\my-dir\\my-schema.xsd"); sc.setErrorListener(... ); sc.parseSchema(new InputSource(file.toURI().toString())); S2JJAXBModel model = sc.bind(); JCodeModel cm = model.generateCode(null, null); cm.build(new File("."));