XML Data Reduced Schema

Preview:

DESCRIPTION

XML Data Reduced Schema. Eugenia Fernandez IUPUI. Problems with DTDs. Not expressed in XML syntax – must learn new language Little control over data types Not easily extensible Does not support XML namespaces, thus cannot mix elements from multiple sources. History of XDR. - PowerPoint PPT Presentation

Citation preview

XML Data Reduced Schema

Eugenia Fernandez

IUPUI

Problems with DTDs

Not expressed in XML syntax – must learn new language

Little control over data typesNot easily extensibleDoes not support XML namespaces, thus

cannot mix elements from multiple sources

History of XDR

Based on a submission to the W3CSubset of Microsoft’s full XML-Data

recommendationProposal submitted in January 1998 before

XML 1.0 standard was doneIntegral part of BizTalk, an XML

vocabulary used for e-commerce

XDR Schema

Root element is always SchemaRoot element always contains

– a name attribute that specifies the name of the schema

– an xmlns attribute that specifies the default namespace for the Schema element and its child elements

XDR Schema Element

<Schema name="myschema"

xmlns="urn:schemas-microsoft.com:xml-data"

xmlns:dt="urn:schemas-microsoft.com:datatypes">

.

.

.

</Schema>

XDR Element Syntax

<ElementType

content="{empty | textOnly | eltOnly | mixed}"

dt:type="datatype"

model="{open | closed}"

name="idref"

order="{one | seq | many}">

ElementType Content

empty textOnly eltOnly

– only other elementsmixed

– mixed content model

Linking an XDR Schema to an XML DocumentAdd xmlns attribute to root element

<root_element xmlns = x-schema:filename.xdr">

</root_element>

Element Datatypes

boolean chardatedateTime float intnumber

string time fixed.14.4 i1, i2, i4, i8 r4, r8ui1, ui2, ui4, ui8uri

For a complete list, go to http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/htm/xsd_xdrref_5s8j.asp

ElementType Model

Open– can contain other elements & attributes not

specified in the schema

Closed– cannot include elements or other content not

specified in the schema

ElementType Name

name="idref"– required,– identifies the element

ElementType Order

Establishes the order of the child elementsOne

– only one element of the set can be included

Seq– elements must appear in the specified sequential

order

Many– elements may appear, or not, in any order

Declaring Child Elements

use element tag nested within ElementType tag with name of child element contained in type attribute

a matching ElementType must exist for the child element

<ElementType name="parent" model="closed" content="eltonly">

<element type="child"/></ElementType>

<ElementType name="child" model="closed" content="textOnly"/>

Declaring Attributes

Add AttributeType element as a child of the element to which the attribute belongs– declares a type of attribute

Pair it with an attribute element – defines an attribute for that particular

element

AttributeType Syntax

<AttributeType

default="default_value"

dt:type="primitive-type"

dt:values="enumerated-values"

name="idref"

required="{yes | no}">

AttributeType dt:types

entity entities enumeration id idref idrefs

nmtokennmtokensnotation string

Attribute Element Syntax

<attributedefault="default_value"type="attribute-type"[required="{yes | no}"] >

overrides any default provided in AttributeType

must match name attribute of previously declared AttributeType

optional if required attribute used in AttributeType

Occurrence Indicators

via child elements of the element tag<element

type="element-type"

[minOccurs="{0 | 1}"]

[maxOccurs="{1 | *}"] >

optionalrequired

only once many times

Attribute Length Constraints

for attributes with dt:type of string or number

via attribute of AttributeType element– dt:minLength="positive-integer"

– dt:maxLength="positive-integer"

Content Groups

Establishes constraints on a group of child elements within an ElementType element<group order="{one | seq | many}"

minOccurs="{0|1}" maxOccurs="{1|*}"

<element type="ElementType"/>

<element type="ElementType"/>

<element type="ElementType"/>

</group>

References

Day 5 in Sams Teach Yourself XML in 21 Days, Second Edition (Sams Publishing, 2001)

Recommended