210 likes | 309 Views
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.
E N D
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 • Based on a submission to the W3C • Subset of Microsoft’s full XML-Data recommendation • Proposal submitted in January 1998 before XML 1.0 standard was done • Integral part of BizTalk, an XML vocabulary used for e-commerce
XDR Schema • Root element is always Schema • Root 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 elements • mixed • mixed content model
Linking an XDR Schema to an XML Document • Add xmlns attribute to root element <root_element xmlns = x-schema:filename.xdr"> </root_element>
boolean char date dateTime float int number string time fixed.14.4 i1, i2, i4, i8 r4, r8 ui1, ui2, ui4, ui8 uri Element Datatypes 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 elements • One • 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}">
entity entities enumeration id idref idrefs nmtoken nmtokens notation string AttributeType dt:types
Attribute Element Syntax overrides any default provided in AttributeType <attribute default="default_value" type="attribute-type" [required="{yes | no}"] > 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 | *}"] > optional required 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)