Schema Data Types About Domain Schemas

8-4 Administrators Guide for Oracle Business Data Synchronization Server Hub-Defined Data Types In addition to the native W3C XML Schema WXS data types, BDSS provides the XSDs for such common PIM data types as phone numbers and addresses. These data types have only basic restrictions. For example, HubPhoneNumber is restricted to a simple string, as illustrated in Example 8–1 . Example 8–1 Predefined Restrictions to a Hub-Defined Data Type ?xml version=1.0 encoding=windows-1252 ? xsd:schema xmlns:xsd=http:www.w3.org2001XMLSchema xmlns=http:xmlns.oracle.compsshubContactDomain elementFormDefault=qualified xsd:simpleType name=HubPhoneNumber xsd:restriction base=xsd:stringxsd:restriction xsd:simpleType xsd:schema Although BDSS does not define other restrictions, you can define more elaborate restrictions, if needed. The bold font in Example 8–2 illustrates additional restrictions to the length and format of the HubPhoneNumber data type. Example 8–2 Additional Restrictions to a Hub-Defined Data Type ?xml version=1.0 encoding=windows-1252 ? xsd:schema xmlns:xsd=http:www.w3.org2001XMLSchema xmlns=http:xmlns.oracle.compsshubContactDomain elementFormDefault=qualified xsd:simpleType name=HubPhoneNumber xsd:restriction base=xsd:stringxsd:restriction xsd:pattern value=[0-9]{0,2}\[0-9]{3}\[0-9]{3}\-[0-9]{4} Ext:[0-9]{4}? xsd:simpleType xsd:schema The Hub-defined data types include: ■ xsd:HubPercent ■ xsd:HubUnsignedLong ■ xsd:HubTokens ■ xsd:HubUtcOffest ■ xsd:HubPhoneNumber ■ xsd:HubAddress ■ xsd:HubState ■ xsd:HubCountry ■ xsd:HubEmailAddress ■ xsd:HubNamePrefix Caution: If you alter the Hub schemas or Hub schema data types, you must also make corresponding changes to the XSLT documents for each connector. The XSLT documents must change to ensure proper transformation between the Hub and PIM schema representations. Mapping Connector Fields to Hub Fields 8-5 ■ xsd:HubNameSuffix

8.2.1.3 Connector Schema Data Types

Each connector publishes a set of schema data types for defining the domain schemas of its PIM server. The following restrictions apply to these data types: ■ Any new connector domain fields added to a connector domain must only be assigned to a single schema data type published by the corresponding connector. ■ The schema data types published by the connector cannot be modified, restricted, or extended. Do not change them.

8.2.2 Hub Schema Documents

A connector must process the following schemas provided by the Hub: ■ Hub Schema Type Library ■ Hub Schema Documents

8.2.2.1 Hub Schema Type Library

The Hub defines a library of custom XML schema types in the HubTypeLibrary.xsd document Example 8–3 . These schema types are available for use by any Hub or connector domain schema. Example 8–3 Custom XML Schema Types ?xml version=1.0 encoding=windows-1252 ? xsd:schema xmlns:xsd=http:www.w3.org2001XMLSchema xmlns=http:xmlns.oracle.compsshubTypeLibrary elementFormDefault=qualified xsd:simpleType name=HubPercent xsd:restriction base=xsd:positiveInteger xsd:maxInclusive value=100 xsd:minInclusive value=0 xsd:restriction xsd:simpleType xsd:simpleType name=HubUnsignedLong xsd:annotation xsd:documentationSpecifies an amount of work in terms of minutes.xsd:documentation xsd:annotation xsd:restriction base=xsd:unsignedLong xsd:simpleType xsd:complexType name=HubTokens xsd:sequence xsd:element name=Token maxOccurs=unbounded nillable=false minOccurs=0 type=xsd:string xsd:sequence xsd:complexType xsd:simpleType name=HubUtcOffset xsd:restriction base=xsd:string xsd:pattern value=[+|-][0-9]{2}:[0-9]{2} xsd:restriction xsd:simpleType xsd:schema 8-6 Administrators Guide for Oracle Business Data Synchronization Server

8.2.2.2 Hub Task Schema

The Hub defines an XML schema as the central data format for passing task record data between the Hub and the connectors. The schema is defined in the HubTask.xsd document Example 8–4 . Example 8–4 Hub Task XML Schema Listing ?xml version=1.0 encoding=windows-1252 ? xsd:schema xmlns:xsd=http:www.w3.org2001XMLSchema xmlns=http:xmlns.oracle.compsshubTaskDomain targetNamespace=http:xmlns.oracle.compsshubTaskDomain elementFormDefault=qualified xsd:include schemaLocation=HubTypeLibrary.xsd xsd:simpleType name=HubTaskPriority xsd:restriction base=xsd:string xsd:enumeration value=High xsd:enumeration value=MediumHigh xsd:enumeration value=Medium xsd:enumeration value=MediumLow xsd:enumeration value=Low xsd:restriction xsd:simpleType xsd:simpleType name=HubTaskStatus xsd:restriction base=xsd:string xsd:enumeration value=NotStarted xsd:enumeration value=InProgress xsd:enumeration value=Completed xsd:enumeration value=WaitingOnSomeoneElse xsd:enumeration value=Deferred xsd:restriction xsd:simpleType xsd:element name=HubTaskDomain xsd:complexType xsd:sequence xsd:element name=ActualWork type=xsd:unsignedLong minOccurs=0 maxOccurs=1 nillable=true xsd:element name=BillingInfo type=xsd:string minOccurs=0 maxOccurs=1 nillable=true xsd:element name=Category type=HubTokens minOccurs=0 maxOccurs=1 nillable=true xsd:element name=Comments type=xsd:string minOccurs=0 maxOccurs=1 nillable=true xsd:element name=Companies type=HubTokens minOccurs=0 maxOccurs=1 nillable=true xsd:element name=CompletedFlag type=xsd:boolean minOccurs=0 maxOccurs=1 nillable=true xsd:element name=DateCompleted type=xsd:dateTime minOccurs=0 maxOccurs=1 nillable=true xsd:element name=DateCompletedUtcOffset type=HubUtcOffset minOccurs=0 maxOccurs=1 nillable=true xsd:element name=DueDate type=xsd:dateTime minOccurs=0 maxOccurs=1 nillable=true xsd:element name=DueDateUtcOffset type=HubUtcOffset minOccurs=0 maxOccurs=1 nillable=true xsd:element name=Mileage type=xsd:string minOccurs=0 maxOccurs=1 nillable=true xsd:element name=PercentComplete type=HubPercent xsd:element name=Priority type=HubTaskPriority xsd:element name=Private type=xsd:boolean Mapping Connector Fields to Hub Fields 8-7 xsd:element name=Reminder type=xsd:boolean minOccurs=0 maxOccurs=1 nillable=true xsd:element name=ReminderOffset type=xsd:dateTime minOccurs=0 maxOccurs=1 nillable=true xsd:element name=ReminderOffsetUtcOffset type=HubUtcOffset minOccurs=0 maxOccurs=1 nillable=true xsd:element name=StartDate type=xsd:dateTime xsd:element name=StartDateUtcOffset type=HubUtcOffset minOccurs=0 maxOccurs=1 nillable=true xsd:element name=Status type=HubTaskStatus xsd:element name=Subject type=xsd:string minOccurs=0 maxOccurs=1 nillable=true xsd:element name=TotalWork type=HubUnsignedLong minOccurs=0 maxOccurs=1 nillable=true xsd:sequence xsd:complexType xsd:element xsd:schema

8.3 Data Side Effects Caused by Synchronization

Data loss can occur because of: ■ Data Model Incompatibility ■ Differing Data Type Facets ■ List Transformations ■ Record Collisions

8.3.1 Data Model Incompatibility

Data loss may occur when data models for Hub and PIM XSD schemas cannot represent the same set of data. For example, if a Hub Task domain field field-X is not represented in Task domain schema for PIM server B and a Hub Task record extracted from PIM server A contains a value for Hub field-X, then synchronization still propagates the Task record from PIM server A to PIM Server B. However, the value of Hub field-X is not propagated to PIM server B. A subsequent update of the Task record from PIM server B to PIM Server A causes the data for field-X to be removed from PIM server A. This loss occurs because the data is not available from the updated record coming from PIM server B.

8.3.2 Differing Data Type Facets

Data loss can result as transformations occur between different data types with different constraining facets. Some data type facets that may result in data loss include: ■ Length ■ Pattern ■ Enumeration ■ White Space