Wednesday, July 31, 2013

interview questions

1.What is XML?

    Extensible Markup Language (XML) is the universal language for data on the Web
    XML is a technology which allows us to create our own markup language.
    XML documents are universally accepted as a standard way of representing information in platform and language independent manner.
    XML is universal standard for information interchange.
    XML documents can be created in any language and can be used in any language.


2.What is the difference between XML and HTML?

XML is no way clashes with HTML, since they are for two different purposes.
HTML                                                                                                                                             XML
HTML is for displaying purpose.                                                                                                          whereas  XML is for data representation.
HTML is used to mark up text so it can be displayed to users.                                                          XML is used to mark up data so it can be processed by computers.
HTML describes both structure (e.g. <p>, <h2>, <em>) and appearance (e.g. <br>, <font>, <i>)         XML describes only content, or “meaning”
HTML uses a fixed, unchangeable set of tags                                                                                 In XML, you make up your own tags

3.What are the benefits of XML?

There are many benefits of using XML on the Web :

    Simplicity- Information coded in XML is easy to read and understand, plus it can be processed easily by computers.

    Openness- XML is a W3C standard, endorsed by software industry market leaders.

    Extensibility - There is no fixed set of tags. New tags can be created as they are needed.

    Self-description- In traditional databases, data records require schemas set up by the database administrator. XML documents can be stored without such definitions, because they contain meta data in the form of tags and attributes.

    Contains machine-readable context information- Tags, attributes and element structure provide context information that can be used to interpret the meaning of content, opening up new possibilities for highly efficient search engines, intelligent data mining, agents, etc.

    Separates content  from presentation- XML tags describe meaning not presentation. The motto of HTML is: "I know how it looks", whereas the motto of XML is: "I know what it means, and you tell me how it should look." The look and feel of an XML document can be controlled by XSL style sheets, allowing the look of a document to be changed without touching the content of the document. Multiple views or presentations of the same content are easily rendered.

    Supports multilingual documents and Unicode-This is important for the internationalization of applications.

    Facilitates the comparison and aggregation of data - The tree structure of XML documents allows documents to be compared and aggregated efficiently element by element.

    Can embed multiple data types - XML documents can contain any possible data type - from multimedia data (image, sound, video) to active components (Java applets, ActiveX).

    Can embed existing data - Mapping existing data structures like file systems or relational databases to XML is simple. XML supports multiple data formats and can cover all existing data structures and .

    Provides a 'one-server view' for distributed data - XML documents can consist of nested elements that are distributed over multiple remote servers. XML is currently the most sophisticated format for distributed data - the World Wide Web can be seen as one huge XML database.


4.What is a well-formed XML document?

If a document is syntactically correct it can be called as well-formed XML documents. A well-formed document conforms to XML's basic rules of syntax:

    Every open tag must be closed.
    The open tag must exactly match the closing tag: XML is case-sensitive.
    All elements must be embedded within a single root element.
    Child tags must be closed before parent tags.
    A well-formed document has correct XML tag syntax, but the elements might be invalid for the specified document type.


5.What is a valid XML document?

If a document is structurally correct then it can be called as valid XML documents. A valid document conforms to the predefined rules of a specific type of document:

    These rules can be written by the author of the XML document or by someone else.
    The rules determine the type of data that each part of a document can contain.

Note:Valid XML document is implicitly well-formed, but well-formed may not be valid

6.What is the structure of XML document ?
<?xml version="1.0" encoding="UTF-8"?>                                              //xml declaration
<!DOCTYPE library PUBLIC "-//DTD Library//EN" "path/pf/library.dtd">   //document type declaration
//xml body
<library>
 <shelf id="fiction">
 <book>
   <title>Of Mice and Men</title>
   <author>John steinbeck</author>
 </book>
</shelf>
</library>

What is a Processing Instruction in XML?

A ProcessingIntruction is the information which we would like to give to application. Through a ProcessingInstruction an application would get idea about how to process the document. A ProcessingInstruction can appear anywhere and any no. of times in a document.

8.How does the XML structure is defined?

XML document will have a structure which has to be defined before we can create the documents and work with them. The structural rules can be defined using many available technologies, but the following are popular way of doing so-

    Document Type Definition (DTD)
    Schema


9.What is DTD?

A Document Type Definition (DTD) defines the legal building blocks of an XML document. It defines rules for a specific type of document, including:

    Names of elements, and how and where they can be used
    The order of elements
    Proper nesting and containment of elements
    Element attributes

To apply a DTD to an XML document, you can:

    Include the DTD's element definitions within the XML document itself.
    Provide the DTD as a separate file, whose name you reference in the XML document.


10.What is XML Schema?

An XML Schema describes the structure of an XML instance document by defining what each element must or may contain.XML Schema is expressed in the form of a separate XML file.

    XML Schema provides much more control on element and attribute datatypes.
    Some datatypes are predefined and new ones can be created.

    <xsd:schema  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <xsd:element  name="test">


 What are differences between DTDs and Schema?
Schema DTD
Schema document is an XML document i.e., the structure of an XML document is specified by another XML document. DTDs follow SGML syntax.
Schema supports variety of dataTypes similar to programming language. In DTD everything is treated as text.
In Schema,  It is possible to inherit and create relationship among elements. This is not possible in DTD without invalidating existing documents.
In Schema, It is possible to group elements and attributes so that they can be treated as single logical unit. Grouping of elements and attributes is not possible in DTD.
In Schemas, it is possible to specify an upper limit for the number of occurrences of an element It is not possible to specify an upper limit of an element in DTDs



12.What is a Complex Element?

A complex element is an XML element that contains other elements and/or attributes.
There are four kinds of complex elements:

    empty elements
    elements that contain only other elements
    elements that contain only text
    elements that contain both other elements and text


13.What is a Simple Element?

A simple element is an XML element that can contain only text.

    A simple element cannot have attributes
    A simple element cannot contain other elements
    A simple element cannot be empty
    However, the text can be of many different types, and may have various restrictions applied to it


14.What are namespaces? Why are they important?

A simple element is an XML element that can contain only text.

    Namespaces are a simple and straightforward way to distinguish names used in XML documents, no matter where they come from.
    XML namespaces are used for providing uniquely named elements and attributes in an XML instance
    They allow developers to qualify uniquely the element names and relationships and make these names recognizable, to avoid name collisions on elements that have the same name but are defined in different vocabularies.
    They allow tags from multiple namespaces to be mixed, which is essential if data is coming from multiple sources.

Example: a bookstore may define the <TITLE> tag to mean the title of a book, contained only within the <BOOK> element. A directory of people, however, might define <TITLE> to indicate a person's position, for instance: <TITLE>President</TITLE>. Namespaces help define this distinction clearly.

Note: a) Every namespace has a unique name which is a string. To maintain the uniqueness among namespaces a IRL is most preferred approach, since URLs are unique.

         b) Except for no-namespace Schemas, every XML Schema uses at least two namespaces:
                1.the target namespace.
                2. The XMLSchema namespace (http://w3.org/2001/XMLSchema)         

15.What are the ways to use namespaces?

There are two ways to use namespaces:

    Declare a default namespace
    Associate a prefix with a namespace, then use the prefix in the XML to refer to the namespace


Question 3: What is XPath ?
Answer : XPath is an XML technology which is used to retrieve element from XML documents. Since XML documents are structured, XPath expression can be used to locate and retrieve elements, attributes or value from XML files. XPath is similar to SQL in terms of retrieving data from XML but it has it's own syntax and rules. See here to know more about How to use XPath to retrieve data from XML documents.

Question 4: What is XSLT?
Answer : XSLT is another popular XML technology to transform one XML file to other XML, HTML or any other format. XSLT is like a language which specifies its own syntax, functions and operator to transform XML documents. Usually transformation is done by XSLT Engine which reads instruction written using XSLT syntax in XML style sheets or XSL files. XSLT also makes extensive use of recursion to perform transformation. One of the popular example of using XSLT is for displaying data present in XML files as HTML pages. XSLT is also very handy to transforming one XML file into another XML document.

Question 5: What is element and attribute in XML?
Answer : This can be best explained by an example. let's see a simple XML snippet

<Orders>
  <Order id="123">
     <Symbol> 6758.T</Symbol>
     <Price> 2300</Price>
  <Order>
<Orders>

In this sample XML id is an attribute of <Order> element. Here <Symbol>, <Price> and <Orders> are also other elements but they don't have any attribute.

Question 6: What is meaning of well formed XML ?
Answer : Another interesting XML interview question which most appeared in telephonic interviews. A well formed XML means an XML document which is syntactically correct e.g. it has a root element, all open tags are closed properly, attributes are in quotes etc.  If an XML is not well formed, it may not be processed and parsed correctly by various XML parsers.

Question 7: What is XML namespace? Why it's important?
Answer : XML namespace are similar to package in Java and used to provide a way to avoid conflict between two xml tags of same name but different sources. XML namespace is defined using xmlns attribute at top of the XML document and has following syntax  xmlns:prefix="URI". later that prefix is used along with actual tag in XML documents. Here is an example of using XML namespace :

<root xmlns:inst="http://instruments.com/inst"
  <inst:phone>
      <inst:number>837363223</inst:number>
   </inst:phone>
</root>

Question 8: Difference between DOM and SAX parser ?
Answer : This is another very popular XML interview question, not just in XML world but also on Java world. Main difference between DOM and SAX parser is the way they parse XML documents. DOM creates an in memory tree representation of XML documents during parsing while SAX is a event driven parser. See Difference between DOM and SAX parser for more detailed answer of this question.

Question 9: What is a CDATA section in XML?
Answer : I like this XML Interview questions for its simplicity and importance, yet many programmer doesn't know much about it. CDATA stands for character data and has special instruction for XML parsers. Since XML parser parse all text in XML document e.g. <name>This is name of person</name>  here even though value of tag <name> will be parsed because it may contain XML tags e.g. <name><firstname>First Name</firstname></name>. CDATA section is not parsed by XML parser. CDATA section starts with "<![CDATA[" and finishes with "]]>".

Question 10: What is XML data Binding in Java?
Answer : XML binding in Java refers to creating Java classes and object from XML documents and then modifying XML documents using Java programming language. JAXB , Java API for XML binding provides convenient way to bind XML documents with Java objects. Other alternatives for XML binding is using open source library e.g. XML Beans. One of the biggest advantage of XML binding in Java is to leverage Java programming capability to create and modify XML documents.

Read more: http://javarevisited.blogspot.com/2013/01/10-xml-interview-questions-and-answers.html#ixzz2Zy7XMosz