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