এক্সএসডি থেকে জ্যাকএক্সবি ক্লাস কীভাবে উত্পন্ন করা যায়?


116

আমি এক্সএমএল সহ মোট নবাগত। আমি একটি জাভা EE প্রকল্পের REST বাস্তবায়ন করছি এবং আমরা প্রচুর এক্সএমএল ফিরিয়ে দিচ্ছি। এটি দিয়ে আমরা জ্যাকএক্সবি ব্যবহারের সিদ্ধান্ত নিয়েছি। এখনও অবধি, আমরা এক্সএমএলের জন্য মডেলগুলি ম্যানুয়ালি কোড করেছি।

তবে ইতিমধ্যে এই জটিল কাঠামো রয়েছে যা আমরা কোড করতে জানি না। আমরা এক্সএসডি থেকে ক্লাস উত্পন্ন করার বিষয়ে পড়েছি। আমাদের একটি এক্সএসডি আছে।

আমার প্রশ্নগুলো:

১) আমি এক্সজেসি সম্পর্কে পড়েছি, আমি এটি কোথায় খুঁজে পাব?

২) আমাদের কি পুরো জ্যাকএক্সবি ইনস্টল করতে হবে? (তাহলে আমরা এখন পর্যন্ত কী ব্যবহার করেছি? এটি কি জ্যাকসবি নয়?)

উত্তর:


105

এক্সজেসি জাভা এসই 6 দিয়ে শুরু করে জেডিকে বিন ডিরেক্টরিতে অন্তর্ভুক্ত রয়েছে উদাহরণস্বরূপ দেখুন:

ব্লগের বিষয়বস্তুগুলি নিম্নলিখিত:

জ্যাকএক্সবি দিয়ে অ্যাটম ফিডগুলি প্রক্রিয়াকরণ করা অ্যাটম ওয়েব ফিডগুলি উপস্থাপনের জন্য একটি এক্সএমএল ফর্ম্যাট। একটি স্ট্যান্ডার্ড ফর্ম্যাট পাঠক অ্যাপ্লিকেশনগুলিকে বিভিন্ন উত্স থেকে ফিড প্রদর্শন করতে দেয়। এই উদাহরণে আমরা এই ব্লগের জন্য অ্যাটম ফিডটি প্রক্রিয়া করব।

ডেমো

এই উদাহরণে আমরা জেএক্সবি ব্যবহার করব এই ব্লগের সাথে সম্পর্কিত অ্যাটম এক্সএমএল ফিডকে অবজেক্টে এবং তারপরে এক্সএমএলে ফিরিয়ে আনব।

import java.io.InputStream;
import java.net.URL;
import javax.xml.bind.*;
import javax.xml.transform.stream.StreamSource;
import org.w3._2005.atom.FeedType;

public class Demo {

    public static void main(String[] args) throws Exception {
        JAXBContext jc = JAXBContext.newInstance("org.w3._2005.atom");

        Unmarshaller unmarshaller = jc.createUnmarshaller();
        URL url = new URL("http://bdoughan.blogspot.com/atom.xml");
        InputStream xml = url.openStream();
        JAXBElement<feedtype> feed = unmarshaller.unmarshal(new StreamSource(xml), FeedType.class);
        xml.close();

        Marshaller marshaller = jc.createMarshaller();
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        marshaller.marshal(feed, System.out);
    }

}

জ্যাকএক্সবি মডেল

নিম্নলিখিত মডেলটি স্কিমা দ্বারা জাভা সংকলক (এক্সজেসি) তৈরি করেছে। স্থান বাঁচানোর জন্য আমি গেট / সেট পদ্ধতি এবং মন্তব্য বাদ দিয়েছি।

xjc -d generated http://www.kbcafe.com/rss/atom.xsd.xml

প্যাকেজ-তথ্য

@XmlSchema(
        namespace = "http://www.w3.org/2005/Atom",
        elementFormDefault = XmlNsForm.QUALIFIED)
@XmlAccessorType(XmlAccessType.FIELD)
package org.w3._2005.atom;

import javax.xml.bind.annotation.*;

CategoryType

package org.w3._2005.atom;

import java.util.*;
import javax.xml.bind.annotation.*;
import javax.xml.bind.annotation.adapters.*;
import javax.xml.namespace.QName;

@XmlType(name = "categoryType")
public class CategoryType {
    @XmlAttribute(required = true)
    protected String term;

    @XmlAttribute
    @XmlSchemaType(name = "anyURI")
    protected String scheme;

    @XmlAttribute
    protected String label;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlSchemaType(name = "anyURI")
    protected String base;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    @XmlSchemaType(name = "language")
    protected String lang;

    @XmlAnyAttribute
    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
}

বিষয়বস্তুর প্রকার

package org.w3._2005.atom;

import java.util.*;
import javax.xml.bind.annotation.*;
import javax.xml.bind.annotation.adapters.*;
import javax.xml.namespace.QName;

@XmlType(name = "contentType", propOrder = {"content"})
public class ContentType {
    @XmlMixed
    @XmlAnyElement(lax = true)
    protected List<Object> content;

    @XmlAttribute
    protected String type;

    @XmlAttribute
    @XmlSchemaType(name = "anyURI")
    protected String src;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlSchemaType(name = "anyURI")
    protected String base;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    @XmlSchemaType(name = "language")
    protected String lang;

    @XmlAnyAttribute
    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
}

DateTimeType

package org.w3._2005.atom;

import java.util.*;
import javax.xml.bind.annotation.*;
import javax.xml.bind.annotation.adapters.*;
import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.namespace.QName;

@XmlType(name = "dateTimeType", propOrder = {"value"})
public class DateTimeType {
    @XmlValue
    @XmlSchemaType(name = "dateTime")
    protected XMLGregorianCalendar value;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlSchemaType(name = "anyURI")
    protected String base;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    @XmlSchemaType(name = "language")
    protected String lang;

    @XmlAnyAttribute
    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
}

EntryType

package org.w3._2005.atom;

import java.util.*;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.*;
import javax.xml.bind.annotation.adapters.*;
import javax.xml.namespace.QName;

@XmlType(name = "entryType", propOrder = {"authorOrCategoryOrContent"})
public class EntryType {
    @XmlElementRefs({
        @XmlElementRef(name = "id", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "rights", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "summary", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "title", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "author", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "source", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "updated", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "category", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "content", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "published", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "contributor", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "link", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class)
    })
    @XmlAnyElement(lax = true)
    protected List<Object> authorOrCategoryOrContent;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlSchemaType(name = "anyURI")
    protected String base;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    @XmlSchemaType(name = "language")
    protected String lang;

    @XmlAnyAttribute
    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
}

FeedType

package org.w3._2005.atom;

import java.util.*;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.*;
import javax.xml.bind.annotation.adapters.*;
import javax.xml.namespace.QName;

@XmlType(name = "feedType", propOrder = {"authorOrCategoryOrContributor"})
public class FeedType {
    @XmlElementRefs({
        @XmlElementRef(name = "link", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "updated", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "category", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "rights", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "contributor", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "title", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "id", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "generator", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "icon", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "subtitle", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "author", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "entry", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "logo", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class)
    })
    @XmlAnyElement(lax = true)
    protected List<Object> authorOrCategoryOrContributor;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlSchemaType(name = "anyURI")
    protected String base;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    @XmlSchemaType(name = "language")
    protected String lang;

    @XmlAnyAttribute
    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
}

GeneratorType

package org.w3._2005.atom;

import java.util.*;
import javax.xml.bind.annotation.*;
import javax.xml.bind.annotation.adapters.*;
import javax.xml.namespace.QName;

@XmlType(name = "generatorType", propOrder = {"value"})
public class GeneratorType {
    @XmlValue
    protected String value;

    @XmlAttribute
    @XmlSchemaType(name = "anyURI")
    protected String uri;

    @XmlAttribute
    protected String version;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlSchemaType(name = "anyURI")
    protected String base;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    @XmlSchemaType(name = "language")
    protected String lang;

    @XmlAnyAttribute
    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
}

IconType

package org.w3._2005.atom;

import java.util.*;
import javax.xml.bind.annotation.*;
import javax.xml.bind.annotation.adapters.*;
import javax.xml.namespace.QName;

@XmlType(name = "iconType", propOrder = {"value"})
public class IconType {
    @XmlValue
    @XmlSchemaType(name = "anyURI")
    protected String value;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlSchemaType(name = "anyURI")
    protected String base;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    @XmlSchemaType(name = "language")
    protected String lang;

    @XmlAnyAttribute
    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
}

আইডি প্রকার

package org.w3._2005.atom;

import java.util.*;
import javax.xml.bind.annotation.*;
import javax.xml.bind.annotation.adapters.*;
import javax.xml.namespace.QName;

@XmlType(name = "idType", propOrder = {"value"})
public class IdType {
    @XmlValue
    @XmlSchemaType(name = "anyURI")
    protected String value;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlSchemaType(name = "anyURI")
    protected String base;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    @XmlSchemaType(name = "language")
    protected String lang;

    @XmlAnyAttribute
    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
}

LinkType

package org.w3._2005.atom;

import java.math.BigInteger;
import java.util.*;
import javax.xml.bind.annotation.*;
import javax.xml.bind.annotation.adapters.*;
import javax.xml.namespace.QName;

@XmlType(name = "linkType", propOrder = {"content"})
public class LinkType {
    @XmlValue
    protected String content;

    @XmlAttribute(required = true)
    @XmlSchemaType(name = "anyURI")
    protected String href;

    @XmlAttribute
    protected String rel;

    @XmlAttribute
    protected String type;

    @XmlAttribute
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    @XmlSchemaType(name = "NMTOKEN")
    protected String hreflang;

    @XmlAttribute
    protected String title;

    @XmlAttribute
    @XmlSchemaType(name = "positiveInteger")
    protected BigInteger length;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlSchemaType(name = "anyURI")
    protected String base;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    @XmlSchemaType(name = "language")
    protected String lang;

    @XmlAnyAttribute
    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
}

লোগোটাইপ

package org.w3._2005.atom;

import java.util.*;
import javax.xml.bind.annotation.*;
import javax.xml.bind.annotation.adapters.*;
import javax.xml.namespace.QName;

@XmlType(name = "logoType", propOrder = {"value"})
public class LogoType {
    @XmlValue
    @XmlSchemaType(name = "anyURI")
    protected String value;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlSchemaType(name = "anyURI")
    protected String base;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    @XmlSchemaType(name = "language")
    protected String lang;

    @XmlAnyAttribute
    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
}

PersonType

package org.w3._2005.atom;

import java.util.*;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.*;
import javax.xml.bind.annotation.adapters.*;
import javax.xml.namespace.QName;

@XmlType(name = "personType", propOrder = {"nameOrUriOrEmail"})
public class PersonType {
    @XmlElementRefs({
        @XmlElementRef(name = "email", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "name", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "uri", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class)
    })
    @XmlAnyElement(lax = true)
    protected List<Object> nameOrUriOrEmail;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlSchemaType(name = "anyURI")
    protected String base;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    @XmlSchemaType(name = "language")
    protected String lang;

    @XmlAnyAttribute
    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
}

SourceType

package org.w3._2005.atom;

import java.util.*;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.*;
import javax.xml.bind.annotation.adapters.*;
import javax.xml.namespace.QName;

@XmlType(name = "sourceType", propOrder = {"authorOrCategoryOrContributor"})
public class SourceType {
    @XmlElementRefs({
        @XmlElementRef(name = "updated", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "category", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "subtitle", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "logo", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "generator", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "icon", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "title", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "id", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "author", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "contributor", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "link", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class),
        @XmlElementRef(name = "rights", namespace = "http://www.w3.org/2005/Atom", type = JAXBElement.class)
    })
    @XmlAnyElement(lax = true)
    protected List<Object> authorOrCategoryOrContributor;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlSchemaType(name = "anyURI")
    protected String base;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    @XmlSchemaType(name = "language")
    protected String lang;

    @XmlAnyAttribute
    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
}

TextType

package org.w3._2005.atom;

import java.util.*;
import javax.xml.bind.annotation.*;
import javax.xml.bind.annotation.adapters.*;
import javax.xml.namespace.QName;

@XmlType(name = "textType", propOrder = {"content"})
public class TextType {
    @XmlMixed
    @XmlAnyElement(lax = true)
    protected List<Object> content;

    @XmlAttribute
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    protected String type;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlSchemaType(name = "anyURI")
    protected String base;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    @XmlSchemaType(name = "language")
    protected String lang;

    @XmlAnyAttribute
    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
}

UriType

package org.w3._2005.atom;

import java.util.*;
import javax.xml.bind.annotation.*;
import javax.xml.bind.annotation.adapters.*;
import javax.xml.namespace.QName;

@XmlType(name = "uriType", propOrder = {"value"})
public class UriType {
    @XmlValue
    @XmlSchemaType(name = "anyURI")
    protected String value;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlSchemaType(name = "anyURI")
    protected String base;

    @XmlAttribute(namespace = "http://www.w3.org/XML/1998/namespace")
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    @XmlSchemaType(name = "language")
    protected String lang;

    @XmlAnyAttribute
    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
}

2
সেরা উত্তর কারণ আমি এই উত্তরটিও ব্যবহার করে সমাধানটি পেয়েছি (যদিও আমি এটি নিজে খুঁজে পেয়েছি)। ধন্যবাদ :)
ছদ্মবেশে

3
xjc -d generated http://www.kbcafe.com/rss/atom.xsd.xmlআর কাজ করে না (লিঙ্ক ডেড)। উদাহরণস্বরূপ অন্য একটি অ্যাটম এক্সএসডি ব্যবহার করুন যদি আপনি উপরেরটির পুনরুত্পাদন না করে কেবল কিছু উত্পন্ন করতে চান । xjc -d generated http://exyus.com/xcs/tasklist/source/?f=put_atom.xsdএই মুহূর্তে কাজ করে। generatedযদিও ডিরেক্টরিটি তৈরি করুন প্রথমে।
লৌরি হার্পফ

Org.w3._2005.atom.FeedType এর জন্য নির্ভরতা আমরা কোথায় খুঁজে পাব?
জিম

47

জন্য অন্ধকার এসটিএস (3.5 অন্তত) আপনি কিছু ইনস্টল করতে হবে না। স্কিমা.এক্সএসডি -> জেনারেট -> জ্যাকএক্সবি ক্লাসে ডান ক্লিক করুন। পরের ধাপে আপনাকে প্যাকেজ এবং অবস্থান নির্দিষ্ট করতে হবে এবং এটিই আপনার ক্লাস তৈরি করা উচিত। আমি উপরের উল্লিখিত সমস্ত সমাধানগুলির কাজটি অনুমান করি তবে এটি এখনও সবচেয়ে সহজ (এসটিএস ব্যবহারকারীদের জন্য) বলে মনে হচ্ছে।

[আপডেট] Eclipse STS সংস্করণ 3.6 (কেপলারের উপর ভিত্তি করে) একই কার্যকারিতা নিয়ে আসে।

বাজে কথা



5
নোট করুন যে মেনু বিকল্পটি পেতে আপনার "ডালি" জ্যাকএক্সবি ওয়েব টলগুলি ইনস্টল করতে হবে। Eclipse.org/webtools/dali
রিক

আপনি "ডালি" ওয়েব সরঞ্জাম ইনস্টল করার চেয়ে জ্যাক্সবি-ইমপ্লল জারটি যুক্ত করতে পারেন
নাওর বার

18

1) আপনি স্ট্যান্ডার্ড জাভা ইউটিলিটি এক্সজেসি ব্যবহার করতে পারেন - ([আপনার জাভা হোম ডায়ার] \ বিন \ এক্সজেসি.এক্সসি)। তবে এটি ব্যবহারের জন্য আপনাকে .bat (বা .sh) স্ক্রিপ্ট তৈরি করতে হবে।

যেমন জেনারেট.বাট:

[your java home dir]\bin\xjc.exe %1 %2 %3

উদাহরণস্বরূপ পরীক্ষা-প্রকল্প.এক্সএসডি:

<?xml version="1.0"?>
<xs:schema version="1.0"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           elementFormDefault="qualified" 
           targetNamespace="http://myprojects.net/xsd/TestScheme"
           xmlns="http://myprojects.net/xsd/TestScheme">
    <xs:element name="employee" type="PersonInfoType"/>

    <xs:complexType name="PersonInfoType">
        <xs:sequence>
            <xs:element name="firstname" type="xs:string"/>
            <xs:element name="lastname" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>

প্যারামিটার সহ .bat ফাইল চালান: জেনারেট.ব্যাট পরীক্ষা-প্রকল্প.এক্সএসডি -ডি [আপনার এসআরসি ডিআর]

আরও তথ্যের জন্য এই ডকুমেন্টেশনটি ব্যবহার করুন - http://docs.oracle.com/javaee/5/tutorial/doc/bnazg.html

এবং এটি - http://docs.oracle.com/javase/6/docs/technotes/tools/share/xjc.html

2) জ্যাকএক্সবি (এক্সজেসি ইউটিলিটি) ডিফল্টরূপে জেডিকে 6 এর সাথে একসাথে ইনস্টল করা আছে।


18
আমি এখানে স্ক্রিপ্টের প্রয়োজনীয়তা বুঝতে পারি না।
নিকোলাস বারবুলেসকো

5

আশা করি এটা কাজে লাগবে!


5

সিএক্সএফ এই ধরণের স্টাফের জন্য দুর্দান্ত সমর্থন করে

<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-xjc-plugin</artifactId>
    <version>2.3.0</version>
    <configuration>
      <extensions>
        <extension>org.apache.cxf.xjcplugins:cxf-xjc-dv:2.3.0</extension>
      </extensions>
    </configuration>
    <executions>
      <execution>
        <id>generate-sources-trans</id>
        <phase>generate-sources</phase>
        <goals>
          <goal>xsdtojava</goal>
        </goals>
        <configuration>
          <sourceRoot>${basedir}/src/main/java</sourceRoot>
          <xsdOptions>
            <xsdOption>
              <xsd>src/main/resources/xxx.xsd</xsd>
            </xsdOption>
          </xsdOptions>
        </configuration>
      </execution>
    </executions>
  </plugin>

5

ইনটেলিজ ক্লিক করুন। এক্সএসডি ফাইল -> ওয়েব সার্ভিস -> এক্সএমএল স্কিমা জ্যাকএক্সবি থেকে জাভা কোড তৈরি করুন তারপরে প্যাকেজের পথ এবং প্যাকেজের নাম দিন -> ঠিক আছে


3
  1. Http://java.net/downloads/jaxb-workshop/IDE%20plugins/org.jvnet.jaxbw.zip ডাউনলোড করুন
  2. জিপ ফাইলটি বের করুন।
  3. .Eclipse \ প্লাগইন ফোল্ডারে org.jvnet.jaxbw.eclipse_1.0.0 ফোল্ডারটি রাখুন
  4. গ্রহনটি পুনরায় চালু করুন।
  5. এক্সএসডি ফাইলে রাইট ক্লিক করুন এবং আপনি কনটেক্সট মেনু খুঁজে পাবেন। JAXB 2.0 -> এক্সজেসি চালান।

3

আপনি jaxb2-maven- প্লাগইন প্লাগইন ব্যবহার করে স্কিমা থেকে উত্স কোড উত্পন্ন করতে পারেন :

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>jaxb2-maven-plugin</artifactId>
            <version>2.2</version>
            <executions>
                <execution>
                    <goals>
                        <goal>xjc</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <sources>
                    <source>src/main/resources/your_schema.xsd</source>
                </sources>
                <xjbSources>
                    <xjbSource>src/main/resources/bindings.xjb</xjbSource>
                </xjbSources>
                <packageName>some_package</packageName>
                <outputDirectory>src/main/java</outputDirectory>
                <clearOutputDir>false</clearOutputDir>
                <generateEpisode>false</generateEpisode>
                <noGeneratedHeaderComments>true</noGeneratedHeaderComments>
            </configuration>
        </plugin>

2

ইন Eclipse, xsdআপনি যে ফাইলটি পেতে চান - তার উপর ডান ক্লিক করুন -> জেনারেট করুন -> জাভা ... -> জেনারেটর: "জ্যাকএক্সবি জাভা ক্লাসে স্কিমা"।

আমি ঠিক একই সমস্যার মুখোমুখি হয়েছিলাম, আমার কাছে অনেকগুলি xsdফাইল ছিল, তাদের মধ্যে একটি হ'ল XML Root Elementএবং এটি গ্রহের ক্ষেত্রে উপরে বর্ণিত যা ভালভাবে কাজ করেছে


নেটবিনসের কি একই ক্ষমতা থাকবে? গ্রহনটি কীভাবে তা করে?
থুফির

1

আপনি জাজএক্সবি জার ফাইলগুলি http://jaxb.java.net/2.2.5 থেকে ডাউনলোড করতে পারেন / আপনাকে কিছু ইনস্টল করার দরকার নেই, কেবল এক্সজেসি কমান্ড এবং ক্লাসপাথ যুক্তি দিয়ে ডাউনলোড করা জ্যাকএক্সবি জার ফাইলগুলি নির্দেশ করে।


এছাড়াও, আমি যুক্ত করব যে তাদের প্রকল্পের গিথুব
মাইকেল ফায়াদ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.