官术网_书友最值得收藏!

Chapter 2. Creating an XML Schema

While XML has become the standard medium for exchanging data, it's the XML schema that defines the structure, content, and semantics of the XML documents. Before you create an XML document that conforms to an XML schema, create the XML schema with the procedure explained in this chapter. Why is it better to start off from an XML schema instead of directly creating the XML document without a schema? Consider a shipping company that sends XML documents containing details on a cargo shipment to a client. If the XML documents are not based on an XML schema, the shipping company might send XML documents containing different sets of elements and attributes. The client won't be able to interpret the XML documents if the XML documents contain different sets of elements and attributes. If the XML documents are based on an XML schema, the client would receive similar XML documents and be able to interpret them. An XML schema makes XML documents understandable to the different parties involved.

JDeveloper 11g provides various wizards for processing an XML schema. In the New Gallery a new schema file may be created. To construct a schema, select XML schema components from the schema Component Palette. A schema may be registered from the Tools menu. Subsequently, an XML document may be created from a registered schema.

In this chapter we shall create an XML schema in JDeveloper 11g. We shall register an XML document in JDeveloper and subsequently create an XML document instance from the XML schema. The example XML schema document that we shall create is catalog.xsd and is listed here:

<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="catalog" type="catalogType"/>
<xsd:complexType name="catalogType">
<xsd:sequence>
<xsd:element ref="journal" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="journal" type="journalType"/>
<xsd:complexType name="journalType">
<xsd:sequence>
<xsd:element ref="article" minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="title" type="xsd:string"/>
<xsd:attribute name="publisher" type="xsd:string"/>
<xsd:attribute name="edition" type="xsd:string"/>
</xsd:complexType>
<xsd:element name="article" type="articleType"/>
<xsd:complexType name="articleType">
<xsd:sequence>
<xsd:element name="title" type="xsd:string"/>
<xsd:element name="author" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="section" type="xsd:string"/>
</xsd:complexType>
</xsd:schema>

The XML document instance that we shall generate from the schema is catalog.xml and is listed as follows:

<?xml version="1.0" encoding="utf-8"?>
<catalog>
<journal title="Oracle Magazine" publisher="Oracle
Publishing" edition="September-October 2008">
<article section="Features">
<title>Share 2.0</title>
<author>Alan Joch</author>
</article>
</journal>
<journal title="Oracle Magazine" publisher="Oracle
Publishing" edition="March-April 2008">
<article section="Oracle Developer">
<title>Declarative Data Filtering</title>
<author>Steve Muench</author>
</article>
</journal></catalog>
主站蜘蛛池模板: 永和县| 宿州市| 上饶县| 东港市| 大英县| 馆陶县| 额济纳旗| 章丘市| 鹤壁市| 广宁县| 拉萨市| 体育| 土默特左旗| 凤城市| 阜城县| 延边| 罗定市| 佳木斯市| 花莲市| 高雄市| 东莞市| 东宁县| 屯门区| 余干县| 陕西省| 安阳县| 南涧| 赣州市| 阳东县| 东乌| 阿巴嘎旗| 鱼台县| 宁安市| 治县。| 贡觉县| 正定县| 肇东市| 温州市| 喜德县| 涞水县| 台安县|