คำถามติดแท็ก jaxb

Java Architecture for XML Binding เป็นมาตรฐาน Java สำหรับการทำงานกับ XML เป็นอ็อบเจ็กต์โดเมน มีกลไกที่ง่ายสำหรับการแมปคลาส Java กับการแสดง XML

30
วิธีแก้ไข java.lang.NoClassDefFoundError: javax / xml / bind / JAXBException ใน Java 9
ฉันมีรหัสบางส่วนที่ใช้คลาส JAXB API ซึ่งได้รับการจัดให้เป็นส่วนหนึ่งของ JDK ใน Java 6/7/8 เมื่อฉันเรียกใช้รหัสเดียวกันกับ Java 9 ที่รันไทม์ฉันได้รับข้อผิดพลาดที่ระบุว่าไม่พบคลาส JAXB คลาส JAXB ได้รับการจัดให้เป็นส่วนหนึ่งของ JDK ตั้งแต่ Java 6 ดังนั้นทำไม Java 9 จึงไม่พบคลาสเหล่านี้อีกต่อไป
845 java  jaxb  java-9  java-11  java-10 

15
ไม่มี @XmlRootElement สร้างโดย JAXB
ฉันกำลังพยายามสร้างคลาส Java จาก FpML (Finanial Products Markup Language) เวอร์ชัน 4.5 มีการสร้างรหัสเป็นตัน แต่ฉันไม่สามารถใช้งานได้ พยายามทำให้เป็นเอกสารอย่างง่ายที่ฉันได้รับ: javax.xml.bind.MarshalException - with linked exception: [com.sun.istack.SAXException2: unable to marshal type "org.fpml._2008.fpml_4_5.PositionReport" as an element because it is missing an @XmlRootElement annotation] ในความเป็นจริงไม่มีคลาสใดที่มีคำอธิบายประกอบ @XmlRootElement ดังนั้นฉันจะทำอะไรผิดได้บ้าง ฉันกำลังชี้ xjc (JAXB 2.1) ไปที่ fpml-main-4-5.xsd ซึ่งรวมทุกประเภท
209 java  jaxb  xjc  fpml 

4
ใช้ JAXB เพื่อสร้าง Object จาก XML String
ฉันจะใช้โค้ดด้านล่างเพื่อยกเลิกการจับสตริง XML กับแผนที่กับวัตถุ JAXB ด้านล่างได้อย่างไร JAXBContext jaxbContext = JAXBContext.newInstance(Person.class); Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); Person person = (Person) unmarshaller.unmarshal("xml string here"); @XmlRootElement(name = "Person") public class Person { @XmlElement(name = "First-Name") String firstName; @XmlElement(name = "Last-Name") String lastName; public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName …
174 java  xml  jaxb 

6
ความแตกต่างของปลั๊กอิน Maven JAXB
ฉันได้พิจารณาแล้วว่ามีปลั๊กอินJAXBสองตัวสำหรับMaven 2 โดยมีการกำหนดค่าที่แตกต่างกัน อันนี้มาจาก Sun: http://jaxb.dev.java.net/jaxb-maven2-plugin/อีกอันมาจาก Mojohaus: http://mojohaus.org/jaxb2-maven-plugin/ คุณสามารถแนะนำปลั๊กอินใดต่อไปนี้ได้ ขอบคุณ Matt ในโครงการวิจัยเล็ก ๆ ของฉันฉันพบว่ามีปลั๊กอินอื่นที่มาจากดวงอาทิตย์: <groupId>com.sun.tools.xjc.maven2</groupId> <artifactId>maven-jaxb-plugin</artifactId> และสิ่งนั้น: <groupId>org.jvnet.jaxb2.maven2</groupId> <artifactId>maven-jaxb2-plugin</artifactId> และยังเป็นหนึ่งจาก Codehouse

5
ฉันจะสร้างอินสแตนซ์วัตถุ JAXBElement <String> ได้อย่างไร
ฉันต้องการสร้างสิ่งเหล่านี้ตามที่อินเทอร์เฟซต้องการ ... ใครช่วยบอกวิธีสร้างได้ไหมเนื่องจากดูเหมือนจะไม่มีการกำหนดหรือกำหนดไว้
121 java  jaxb 

20
Jaxb, Class มีคุณสมบัติสองอย่างที่มีชื่อเดียวกัน
ด้วย jaxb ฉันพยายามอ่านไฟล์ xml มีเพียงไม่กี่องค์ประกอบในไฟล์ xml เท่านั้นที่น่าสนใจดังนั้นฉันต้องการข้ามหลายองค์ประกอบ เนื้อหา xml xml ฉันพยายามอ่าน &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!--Sample XML file generated by XMLSpy v2010 rel. 3 sp1 (http://www.altova.com)--&gt; &lt;flx:ModeleREP xsi:schemaLocation="urn:test:mod_rep.xsd mod_rep.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:flx="urn:test:mod_rep.xsd"&gt; &lt;flx:DocumentHeader&gt; &lt;flx:Identification v="04489"/&gt; &lt;/flx:DocumentHeader&gt; &lt;flx:TimeSeries&gt; &lt;flx:Identification v="test1a"/&gt; &lt;flx:BusinessType v="A01"/&gt; &lt;flx:Product v="123a"/&gt; &lt;flx:ResourceObject codingScheme="N" v="testa"/&gt; &lt;flx:Period&gt; &lt;flx:TimeInterval v="2011-07-02T00:00/2011-07-16T00:00"/&gt; &lt;flx:Resolution v="PT2H"/&gt; &lt;flx:Pt&gt; …
121 java  xml  jaxb 

7
JAXB สร้างบริบทและต้นทุนของมาร์แชลเลอร์
คำถามเป็นเรื่องเชิงทฤษฎีค่าใช้จ่ายในการสร้างบริบท JAXB, marshaller และ unmarshaller คืออะไร? ฉันพบว่ารหัสของฉันอาจได้รับประโยชน์จากการรักษาบริบท JAXB เดียวกันและอาจเป็นจอมพลเดียวกันสำหรับการดำเนินการมาร์แชลทั้งหมดแทนที่จะสร้างบริบทและมาร์แชลเลอร์ในแต่ละมาร์แชล ดังนั้นค่าใช้จ่ายในการสร้างบริบท JAXB และ marshaller / unmarshaller คืออะไร? สามารถสร้างบริบท + จอมพลสำหรับการดำเนินการมาร์แชลแต่ละครั้งได้หรือไม่หรือควรหลีกเลี่ยง
120 java  jaxb  marshalling 

10
จะสร้างคลาส JAXB จาก XSD ได้อย่างไร
ฉันเป็นมือใหม่ที่ใช้ XML ฉันกำลังใช้งาน REST โปรเจ็กต์ Java EE และเราส่งคืน XML จำนวนมาก ด้วยเหตุนี้เราจึงตัดสินใจใช้ JAXB จนถึงตอนนี้เราได้เขียนโค้ดโมเดลสำหรับ XML ด้วยตนเอง แต่มีโครงสร้างที่ซับซ้อนเหล่านี้อยู่แล้วที่เราไม่รู้วิธีเขียนโค้ด เราได้อ่านเกี่ยวกับการสร้างคลาสจาก XSD เรามี XSD คำถามของฉัน: 1. ) ฉันเคยอ่านเกี่ยวกับ XJC ฉันจะหาได้ที่ไหน? 2. ) เราต้องติดตั้ง JAXB ทั้งหมดหรือไม่? (แล้วสิ่งที่เราใช้จนถึงตอนนี้ไม่ใช่ JAXB หรือไม่)
116 java  jakarta-ee  jaxb 

7
การแปลงอย่างง่ายระหว่าง java.util.Date และ XMLGregorianCalendar
ฉันกำลังมองหาวิธีง่ายๆในการแปลงระหว่าง java.util.Date และ javax.xml.datatype.XMLGregorianCalendar ทั้งสองทิศทาง นี่คือรหัสที่ฉันใช้ตอนนี้ : import java.util.GregorianCalendar; import javax.xml.datatype.DatatypeConfigurationException; import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.XMLGregorianCalendar; /** * Utility class for converting between XMLGregorianCalendar and java.util.Date */ public class XMLGregorianCalendarConverter { /** * Needed to create XMLGregorianCalendar instances */ private static DatatypeFactory df = null; static { try { df = …

9
JAXB คืออะไรและทำไมฉันถึงใช้? [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ มีผู้ชายที่นี่สาบานว่า JAXB เป็นสิ่งที่ดีที่สุดตั้งแต่ขนมปังหั่นบาง ๆ ฉันอยากรู้ว่าผู้ใช้ Stack Overflow คิดว่ากรณีการใช้งานมีไว้สำหรับ JAXB และอะไรทำให้เป็นทางออกที่ดีหรือไม่ดีสำหรับกรณีนั้น
109 java  jaxb 

14
javax.xml.bind.UnmarshalException: องค์ประกอบที่ไม่คาดคิด (uri:“”, local:“ Group”)
unexpected element (uri:"", local:"Group"). Expected elements are &lt;{}group&gt; พบข้อยกเว้นเมื่อ unmarshalling จาก xml JAXBContext jc = JAXBContext.newInstance(Group.class); Unmarshaller unmarshaller = jc.createUnmarshaller(); Group group = (User)unmarshaller.unmarshal(new File("group.xml")); คลาสกลุ่มไม่มีคำอธิบายประกอบใด ๆ และ group.xml มีเพียงข้อมูล อะไรสามารถเป็นสาเหตุ?
103 java  xml  jaxb 

3
จุดประสงค์ของคลาส ObjectFactory ของ JAXB 2 คืออะไร?
ฉันเพิ่งเริ่มใช้ JAXB และฉันใช้ xjc ของ JAXB 2.1.3 เพื่อสร้างชุดของคลาสจาก XML Schema ของฉัน นอกเหนือจากการสร้างคลาสสำหรับแต่ละองค์ประกอบในสคีมาของฉันแล้วยังสร้างคลาส ObjectFactory ดูเหมือนจะไม่มีอะไรหยุดฉันจากการสร้างอินสแตนซ์องค์ประกอบโดยตรงเช่น MyElement element = new MyElement(); ในขณะที่แบบฝึกหัดดูเหมือนจะชอบมากกว่า MyElement element = new ObjectFactory().createMyElement(); ถ้าฉันดู ObjectFactory.java ฉันจะเห็น: public MyElement createMyElement() { return new MyElement(); } แล้วตกลงคืออะไร? ทำไมฉันถึงต้องกังวลกับการรักษาคลาส ObjectFactory ไว้ด้วย? ฉันคิดว่ามันจะถูกเขียนทับด้วยถ้าฉันจะคอมไพล์ใหม่จากสคีมาที่เปลี่ยนแปลง
98 java  jaxb 

12
แปลงวัตถุ Java เป็นสตริง XML
ใช่ฉันรู้ว่ามีคำถามมากมายเกี่ยวกับหัวข้อนี้ แต่ฉันยังไม่พบวิธีแก้ปัญหาของฉัน ฉันมีคุณสมบัติที่ใส่คำอธิบายประกอบวัตถุ Java ตัวอย่างเช่นลูกค้าเช่นในตัวอย่างนี้ และฉันต้องการการแสดงสตริงของมัน Google ขอแนะนำให้ใช้ JAXB เพื่อวัตถุประสงค์ดังกล่าว แต่ในตัวอย่างทั้งหมดไฟล์ XML ที่สร้างขึ้นจะถูกพิมพ์ไปยังไฟล์หรือคอนโซลเช่นนี้: File file = new File("C:\\file.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class); Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); // output pretty printed jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); jaxbMarshaller.marshal(customer, file); jaxbMarshaller.marshal(customer, System.out); แต่ฉันต้องใช้วัตถุนี้และส่งผ่านเครือข่ายในรูปแบบ XML ดังนั้นฉันต้องการรับ String ที่แสดงถึง XML String xmlString = ... sendOverNetwork(xmlString); ฉันจะทำเช่นนี้ได้อย่างไร?
92 java  xml  jaxb 

9
java.lang.VerifyError: การคาดหวังเฟรมสแต็กแมปที่เป้าหมายสาขา JDK 1.7
หลังจากอัปเกรดเป็น JDK 1.7 ฉันได้รับข้อยกเว้นด้านล่าง: java.lang.VerifyError: Expecting a stackmap frame at branch target 71 in method com.abc.domain.myPackage.MyClass$JaxbAccessorM_getDescription_setDescription_java_lang_String.get(Ljava/lang/Object;)Ljava/lang/Object; at offset 20 at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2413) at java.lang.Class.getConstructor0(Class.java:2723) at java.lang.Class.newInstance0(Class.java:345) at java.lang.Class.newInstance(Class.java:327) at com.sun.xml.internal.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.instanciate(OptimizedAccessorFactory.java:184) at com.sun.xml.internal.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.get(OptimizedAccessorFactory.java:129) at com.sun.xml.internal.bind.v2.runtime.reflect.Accessor$GetterSetterReflection.optimize(Accessor.java:384) at com.sun.xml.internal.bind.v2.runtime.property.SingleElementLeafProperty.&lt;init&gt;(SingleElementLeafProperty.java:72) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:525) at com.sun.xml.internal.bind.v2.runtime.property.PropertyFactory.create(PropertyFactory.java:113) at …
88 java  jaxb  java-7 

5
คุณระบุรูปแบบวันที่ที่ใช้เมื่อ JAXB marshals xsd: dateTime ได้อย่างไร
เมื่อ JAXB จัดXMLGregorianCalendarระเบียบวัตถุวันที่ ( ) เป็นองค์ประกอบ xsd: dateTime คุณสามารถระบุรูปแบบของ XML ที่เป็นผลลัพธ์ได้อย่างไร? ตัวอย่างเช่น: รูปแบบข้อมูลเริ่มต้นใช้มิลลิวินาที&lt;StartDate&gt;2012-08-21T13:21:58.000Z&lt;/StartDate&gt; ฉันต้องเว้นมิลลิวินาที &lt;StartDate&gt;2012-08-21T13:21:58Z&lt;/StartDate&gt; ฉันจะระบุรูปแบบผลลัพธ์ / รูปแบบวันที่ที่ฉันต้องการใช้ได้อย่างไร ฉันใช้javax.xml.datatype.DatatypeFactoryสร้างXMLGregorianCalendarวัตถุ XMLGregorianCalendar xmlCal = datatypeFactory.newXMLGregorianCalendar(cal);
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.