InterviewSolution
This section includes InterviewSolutions, each offering curated multiple-choice questions to sharpen your knowledge and support exam preparation. Choose a topic below to get started.
| 1. |
Java Code For Marshalling Java Objects Into Xml? |
|
Answer» Example: Marshaller m = factory.createMarshaller(); m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); Writer fw = new FileWriter(“newCars.XML”); m.marshal(cars, fw); marshal method ACCEPTS:
related to XSLT org.w3c.dom.Node related to DOM org.xml.sax.ContentHandler related to SAX • Other Marshaller methods boolean setEventHandler(ValidationEventHandler handler) same as use with Unmarshaller, but validation events are delivered during marshalling VOID setProperty(String name, Object value) SUPPORTED PROPERTIES are
Example: Marshaller m = factory.createMarshaller(); m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); Writer fw = new FileWriter(“newCars.xml”); m.marshal(cars, fw); marshal method accepts: related to XSLT org.w3c.dom.Node related to DOM org.xml.sax.ContentHandler related to SAX • Other Marshaller methods boolean setEventHandler(ValidationEventHandler handler) same as use with Unmarshaller, but validation events are delivered during marshalling void setProperty(String name, Object value) supported properties are |
|
| 2. |
What Is The Syntax Of Schemabindings? |
|
Answer» The syntax for the schemaBindings ELEMENT is <jxb:schemaBindings> <jxb:PACKAGE [name="package-name"]> <jxb:JAVADOC> ... javadoc ... </jxb:javadoc> </package> <jxb:nameXmlTransform> <jxb:typeName PREFIX="prefix" suffix="suffix"/> <jxb:elementName prefix="prefix" suffix="suffix"/> <jxb:modelGroupName prefix="prefix" suffix="suffix"/> <jxb:anonymousTypeName prefix="prefix" suffix="suffix"/> </jxb:nameXmlTransform> </jxb:schemaBindings> – every element and attribute WITHIN schemaBindings is optional The syntax for the schemaBindings element is <jxb:schemaBindings> <jxb:package [name="package-name"]> <jxb:javadoc> ... javadoc ... </jxb:javadoc> </package> <jxb:nameXmlTransform> <jxb:typeName prefix="prefix" suffix="suffix"/> <jxb:elementName prefix="prefix" suffix="suffix"/> <jxb:modelGroupName prefix="prefix" suffix="suffix"/> <jxb:anonymousTypeName prefix="prefix" suffix="suffix"/> </jxb:nameXmlTransform> </jxb:schemaBindings> – every element and attribute within schemaBindings is optional |
|
| 3. |
Discuss Global Bindings Attributes? |
|
Answer» collectionType:
enableFailFastCheck:
generateIsSetMethod:
underscoreBinding
bindingStyle (was modelGroupAsClass):
choiceContentProperty:
enableJavaNamingConventions:
fixedAttributeAsConstantProperty:
typesafeEnumBase:
typesafeEnumMemberName:
collectionType: enableFailFastCheck: generateIsSetMethod: underscoreBinding bindingStyle (was modelGroupAsClass): choiceContentProperty: enableJavaNamingConventions: fixedAttributeAsConstantProperty: typesafeEnumBase: typesafeEnumMemberName: |
|
| 4. |
Discuss Customization Levels? |
|
Answer» Customizations can be made at four levels global:
schema:
definition:
component:
Customizations can be made at four levels global: schema: definition: component: |
|
| 5. |
Explain The Syntax Of Customization? |
|
Answer» Customizations can be specified in The XML Schema must declare the JAXB namespace and version xmlns:jxb="HTTP://java.sun.com/xml/ns/jaxb" jxb:version="1.0"> Customization elements are placed in annotation elements <xsd:annotation> <xsd:appinfo> binding declarations </xsd:appinfo> </xsd:annotation> Customizations can be specified in The XML Schema must declare the JAXB namespace and version xmlns:jxb="http://java.sun.com/xml/ns/jaxb" jxb:version="1.0"> Customization elements are placed in annotation elements <xsd:annotation> <xsd:appinfo> binding declarations </xsd:appinfo> </xsd:annotation> |
|
| 6. |
Explain Customizing Type Bindings? |
|
Answer» Default bindings can be overridden:
Customizations include
Default bindings can be overridden: Customizations include |
|
| 7. |
How To Validate Java Objects? |
|
Answer» The graph of Java objects can contain INVALID data:
Use a Validator to validate the objects Example: Validator v = factory.createValidator(); try { v.validateRoot(CARS); v.validate(car); } catch (ValidationException e) { // Handle the validation error described by e.getMessage(). } Other Validator methods: BOOLEAN setEventHandler(ValidationEventHandler HANDLER) • handleEvent method of ValidationEventHandler is called if validation errors are encountered
Pass an instance of javax.xml.bind.util.ValidationEventCollector (in jaxb-api.jar) to setEventHandler to collect validation errors and query them later instead of handling them during validation. ValidationEventCollector VEC = new ValidationEventCollector(); v.setEventHandler(vec); v.validate(cars); ValidationEvent[] events = vec.getEvents(); The graph of Java objects can contain invalid data: Use a Validator to validate the objects Example: Validator v = factory.createValidator(); try { v.validateRoot(cars); v.validate(car); } catch (ValidationException e) { // Handle the validation error described by e.getMessage(). } Other Validator methods: boolean setEventHandler(ValidationEventHandler handler) • handleEvent method of ValidationEventHandler is called if validation errors are encountered Pass an instance of javax.xml.bind.util.ValidationEventCollector (in jaxb-api.jar) to setEventHandler to collect validation errors and query them later instead of handling them during validation. ValidationEventCollector vec = new ValidationEventCollector(); v.setEventHandler(vec); v.validate(cars); ValidationEvent[] events = vec.getEvents(); |
|
| 8. |
Java Example/java Program To Set Object For Generating Xml? |
|
Answer» CARS cars = factory.createCars(); Car car = factory.createCar(); car.setColor("blue"); car.setMake("Mazda"); car.setModel("MIATA"); car.setYear(BigInteger.valueOf(2012)); cars.getCar().add(car); car = factory.createCar(); car.setColor("RED"); car.setMake("Ford"); car.setModel("Mustang II"); car.setYear(BigInteger.valueOf(2011)); cars.getCar().add(car); Cars cars = factory.createCars(); Car car = factory.createCar(); car.setColor("blue"); car.setMake("Mazda"); car.setModel("Miata"); car.setYear(BigInteger.valueOf(2012)); cars.getCar().add(car); car = factory.createCar(); car.setColor("red"); car.setMake("Ford"); car.setModel("Mustang II"); car.setYear(BigInteger.valueOf(2011)); cars.getCar().add(car); |
|
| 9. |
How To Unmarshall Xml Into Java Objects? Convert From Xml To Java Objects? |
|
Answer» Example: ObjectFactory factory = new ObjectFactory(); Unmarshaller u = factory.createUnmarshaller(); Cars cars = (Cars) u.unmarshal(new FileInputStream(“cars.xml”)); unmarshal method ACCEPTS:
related to XSLT: org.w3c.dom.Node related to DOM: org.xml.sax.InputSource related to SAX: • Other Unmarshaller methods Example: ObjectFactory factory = new ObjectFactory(); Unmarshaller u = factory.createUnmarshaller(); Cars cars = (Cars) u.unmarshal(new FileInputStream(“cars.xml”)); unmarshal method accepts: related to XSLT: org.w3c.dom.Node related to DOM: org.xml.sax.InputSource related to SAX: • Other Unmarshaller methods |
|
| 10. |
How To Generate Java From Xml Schema. Please Show The Example? |
|
Answer» From command-line: Windows: %JAXB_HOME%binxjc cars.xsd UNIX: %JAXB_HOME%/bin/xjc.sh cars.xsd these write generated files to current directory From Ant: <java jar="${env.JAXB_HOME}/lib/jaxb-xjc.jar" fork="yes"> <arg line="-d ${gen.src.dir} cars.xsd"/> </java> Generated Files: • com/withoutbook/cars directory Car.java:
Cars.java:
CarsType.java:
ObjectFactory.java:
bgm.ser:
jaxb.properties:
CarImpl.java:
CarsTypeImpl.java:
CarsImpl.java:
From command-line: Windows: %JAXB_HOME%binxjc cars.xsd UNIX: %JAXB_HOME%/bin/xjc.sh cars.xsd these write generated files to current directory From Ant: <java jar="${env.JAXB_HOME}/lib/jaxb-xjc.jar" fork="yes"> <arg line="-d ${gen.src.dir} cars.xsd"/> </java> Generated Files: • com/withoutbook/cars directory Car.java: Cars.java: CarsType.java: ObjectFactory.java: bgm.ser: jaxb.properties: CarImpl.java: CarsTypeImpl.java: CarsImpl.java: |
|
| 11. |
Give Me An Example Of Xml Document? |
|
Answer» <?XML version="1.0" encoding="UTF-8"?> <cars xmlns="http://www.withoutbook.com/cars" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.withoutbook.com/cars cars.xsd"> <car year="2001"> <make>BMW</make> <model>Z3</model> <color>yellow</color> </car> <car year="2001"> <make>Honda</make> <model>ODYSSEY</model> <color>green</color> </car> <car year="1997"> <make>Saturn</make> <model>SC2</model> <color>PURPLE</color> </car> </cars> <?xml version="1.0" encoding="UTF-8"?> <cars xmlns="http://www.withoutbook.com/cars" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.withoutbook.com/cars cars.xsd"> <car year="2001"> <make>BMW</make> <model>Z3</model> <color>yellow</color> </car> <car year="2001"> <make>Honda</make> <model>Odyssey</model> <color>green</color> </car> <car year="1997"> <make>Saturn</make> <model>SC2</model> <color>purple</color> </car> </cars> |
|
| 12. |
Give Me An Example Of Xsd? |
|
Answer» <?xml version="1.0" encoding="UTF-8"?> <xs:schema elementFormDefault="qualified" XMLNS:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.withoutbook.com/CARS" targetNamespace="http://www.withoutbook.com/cars"> <xs:complexType name="car"> <xs:sequence> <xs:element name="make" type="xs:string"/> <xs:element name="model" type="xs:string"/> <xs:element name="color" type="xs:string"/> </xs:sequence> <xs:attribute name="year" type="xs:POSITIVEINTEGER" USE="required"/> </xs:complexType> <xs:element name="cars"> <xs:complexType> <xs:sequence> <xs:element name="car" type="car" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> <?xml version="1.0" encoding="UTF-8"?> <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.withoutbook.com/cars" targetNamespace="http://www.withoutbook.com/cars"> <xs:complexType name="car"> <xs:sequence> <xs:element name="make" type="xs:string"/> <xs:element name="model" type="xs:string"/> <xs:element name="color" type="xs:string"/> </xs:sequence> <xs:attribute name="year" type="xs:positiveInteger" use="required"/> </xs:complexType> <xs:element name="cars"> <xs:complexType> <xs:sequence> <xs:element name="car" type="car" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> |
|
| 13. |
What Are The Disadvantages/non-goals Of Jaxb? |
|
Answer» STANDARDIZE generated Java:
Preserve XML equivalence:
Bind existing JavaBeans to schemas:
Schema evolution support:
Allow generated Java to access: XML elements/attributes not described in initial schema Partial binding:
Implement every feature of the schema language:
Support DTDs:
Standardize generated Java: Preserve XML equivalence: Bind existing JavaBeans to schemas: Schema evolution support: Allow generated Java to access: XML elements/attributes not described in initial schema Partial binding: Implement every feature of the schema language: Support DTDs: |
|
| 14. |
What Are The Goals Of Jaxb? |
|
Answer» Easy to use: Customizable:
Portable:
Deliver soon:
Natural:
Match schema:
Hide plumbing:
Validation on demand:
Preserve object equivalence: (round tripping)
Easy to use: Customizable: Portable: Deliver soon: Natural: Match schema: Hide plumbing: Validation on demand: Preserve object equivalence: (round tripping) |
|
| 15. |
Explain Jaxb Use Cases? |
|
Answer» Create/Read/Modify XML using Java
Validate USER input:
Use XML-based CONFIGURATION files Create/Read/Modify XML using Java Validate user input: Use XML-based configuration files |
|
| 16. |
Why Use Xml Binding? |
|
Answer» It’s not necessary
It’s easier
It’ s less error-prone
It can allow CUSTOMIZATION of the XML structure
It’s not necessary It’s easier It’ s less error-prone It can allow customization of the XML structure |
|
| 17. |
What Is Xml Binding Relationships? |
|
Answer» The relationships between the components INVOLVED in XML binding (data binding) are SHOWN below schema -> CLASSES XML -> schema Schema generates classes.
The relationships between the components involved in XML binding (data binding) are shown below schema -> classes XML -> schema Schema generates classes. |
|
| 18. |
What Is Xml Binding? |
|
Answer» Maps XML to in-memory objects ACCORDING to a schema Generates classes to represent XML elements:
Supports three PRIMARY operations:
includes validation of the XML against the schema: used to generate the classes of the objects validation of object trees against the schema used to generate their classes
Maps XML to in-memory objects according to a schema Generates classes to represent XML elements: Supports three primary operations: includes validation of the XML against the schema: used to generate the classes of the objects validation of object trees against the schema used to generate their classes |
|