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

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>
主站蜘蛛池模板: 建湖县| 德庆县| 德安县| 巴中市| 法库县| 宜兰市| 贵定县| 新田县| 南开区| 昌吉市| 尖扎县| 新邵县| 勐海县| 鲁甸县| 丘北县| 黄龙县| 工布江达县| 南京市| 遂溪县| 武山县| 石楼县| 安溪县| 元氏县| 永善县| 济南市| 保德县| 罗源县| 新兴县| 隆德县| 会昌县| 来安县| 奉节县| 桑日县| 万年县| 平定县| 武冈市| 鸡西市| 宝坻区| 周宁县| 宁化县| 铜鼓县|