OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

regrep message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [regrep] rim.xsd and reference URIs


Duane,

As the risk of starting an extended discussion (hopefully not!),
I've become reconciled to all this element / attribute stuff
and namespaces now I am using CAM templates.

Namespaces can be useful in denote "embedded semantics",
as we are using them in CAM - where part of the markup
is transparent and is simply there to direct the processing
of the rest of the markup around it.  Typically this takes
the form of embedded directives to the CAM processor.

Using CAM content references to denote information
context - instead of namespaces - then makes your actual
XML instances much cleaner, simpler and easier.  And
you get the added bonus of being able to treat chunks
of your content as objects and to also version them
seamlessly.

Next - CAM makes it really easy to smooth out the
difference between elements and attributes. I personally
like using a lot of attributes - especially where they are
optional parameters to an element - as a matter of style
to aid in the understanding of the markup.

So - in addition to your notes - I'd suggest that using CAM
templates alongside XSD definitions of your markup will
significantly enhance your use of XML and free you from
restrictions you may otherwise feel constrained by.

Not to mention that - once we have completed the work
on integrating context and semantics between registry
and CAM, then you will be able to publish those
templates and semantics to the registry and have them
automatically available to direct interactions with the
registry itself.

Classic example of bootstrapping.

Thanks, DW


----- Original Message ----- 
From: "Duane Nickull" <dnickull@adobe.com>
To: "Farrukh Najmi" <Farrukh.Najmi@Sun.COM>
Cc: <regrep@lists.oasis-open.org>
Sent: Friday, January 09, 2004 10:06 PM
Subject: Re: [regrep] rim.xsd and reference URIs


> Farrukh:
>
> Do I understand the problem as the parser you are using cannot correctly
> distinguish between the namespaced and unnamespaced attribute names?  If
> so, this re-affirms my theorum that namespaces are perhaps the most
> misunderstood and poorly implemented aspect of XML.  Are you using JDOM
B7?
>
> Your solution is elegant and simple, as you claim. It does, however,
> underscore and important lessson for us to learn and a methodology
> (/holy-war) for us to consider in the future.  That is the continued
> debate of Elements vs. Attributes.
>
> In general, I would like to propose the following as methodologies for
> this group to follow:
>
> 1. Our XML should be the expression of a really good object model.
>
> 2. Attributes cannot have attributes.  If there is any ambiguity for a
> concept, let's express it as an Element, not an Attribute.  An element
> can use attribute to distinguish it from other concepts of the same
> nature with different qualifiers.
>
> 3. Let's write XML in our specs that supports programmers and
> future/backwards compatibility.  Let's especially be vigilant so future
> additions do not wreck existing implementations.
>
> I support your solution but let's be vigilant in the future.
>
> I would also like to fully discuss the "name" and "path" attributes
> cardinality of "0..1" during the next conference calls.  Do you have any
> documentation to support the comments you placed besides them?
>
> Duane Nickull
>
> >
> >
> > The problem is that we also use attributes of type anyURI for other
> > reasons such as externalURI in ExternalLinkType.
> >
> > This makes it impossible for code to be written to distinguish the
> > reference attributes in a RIM class. This means that code has to be
> > written to hard code knowledge about reference attributes. The result
> > is complex and hard to maintain code.
> >
> > The solution to this problem is extremely simple and described next....
> >
> > Define a new type called referenceURI which is just an anyURI but with
> > a new specialized type:
> >
> >   <simpleType name="referenceURI">
> >     <restriction base="anyURI" />
> >   </simpleType>
> >
> > We then use referenceURI  instead of anyURI whenever we have a
> > reference attribute:
> >
> >   <complexType name="ServiceBindingType">
> >     <complexContent>
> >       <extension base="tns:RegistryObjectType">
> >         <sequence>
> >           <element maxOccurs="unbounded" minOccurs="0"
> > ref="tns:SpecificationLink"/>
> >         </sequence>
> >         <attribute name="service" type="referenceURI" use="optional"/>
> >         <attribute name="accessURI" type="anyURI" use="optional"/>
> >         <attribute name="targetBinding" type="referenceURI"
> > use="optional"/>
> >       </extension>
> >     </complexContent>
> >   </complexType>
> >
> > Notice above that some attributes in bold text are referenceURI type
> > while accessURI is not.
> > This allows us to distinguish reference attributes from other URI
> > attributes.
> >
> > Best of all the proposed change has no functional impact on what the
> > XML instance documents look like.
> >
> > I am enclosing the modified rim.xsd and a diff.txt file that has only
> > the differences of changes using the universal diff format.
> >
> > I am proposing that we make this simple and safe change to rim.xsd in
> > order to address the problem I have described.
> > This issue is simple enough that I propose that we resolve it over
> > email rather than a more heavy weight process.
> >
> > What does team think?
> >
> >-- 
> >Regards,
> >Farrukh
> >
> >
> >
> >------------------------------------------------------------------------
> >
> ><?xml version = "1.0" encoding = "UTF-8"?>
> ><!-- $Header: /cvsroot/ebxmlrr/ebxmlrr-spec/misc/2.5/schema/rim.xsd,v
1.10 2003/11/13 13:59:13 farrukh_najmi Exp $ -->
> ><schema targetNamespace="urn:oasis:names:tc:ebxml-regrep:rim:xsd:2.5"
xmlns="http://www.w3.org/2001/XMLSchema";
xmlns:dsig="http://www.w3.org/2000/09/xmldsig#";
xmlns:tns="urn:oasis:names:tc:ebxml-regrep:rim:xsd:2.5">
> >  <annotation>
> >    <documentation xml:lang="en">The schema for OASIS ebXML Registry
Information Model</documentation>
> >  </annotation>
> >  <import namespace="http://www.w3.org/XML/1998/namespace";
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
> >  <import namespace="http://www.w3.org/2000/09/xmldsig#";
schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/>
> >  <!-- Begin information model mapping from ebRIM. -->
> >  <!-- Define Data Types -->
> >  <simpleType name="referenceURI">
> >    <annotation>
> >      <documentation xml:lang="en">
> >        referenceURI is used by reference attributes within RIM.
> >        Each attribute of type referenceURI references a RegistryObject
with
> >        specified URI as id.
> >      </documentation>
> >    </annotation>
> >    <restriction base="anyURI" />
> >  </simpleType>
> >  <simpleType name="String4">
> >    <restriction base="string">
> >      <maxLength value="4"/>
> >    </restriction>
> >  </simpleType>
> >  <simpleType name="String8">
> >    <restriction base="string">
> >      <maxLength value="8"/>
> >    </restriction>
> >  </simpleType>
> >  <simpleType name="String16">
> >    <restriction base="string">
> >      <maxLength value="16"/>
> >    </restriction>
> >  </simpleType>
> >  <simpleType name="String32">
> >    <restriction base="string">
> >      <maxLength value="32"/>
> >    </restriction>
> >  </simpleType>
> >  <simpleType name="ShortName">
> >    <restriction base="string">
> >      <maxLength value="64"/>
> >    </restriction>
> >  </simpleType>
> >  <simpleType name="LongName">
> >    <restriction base="string">
> >      <maxLength value="128"/>
> >    </restriction>
> >  </simpleType>
> >  <simpleType name="FreeFormText">
> >    <restriction base="string">
> >      <maxLength value="256"/>
> >    </restriction>
> >  </simpleType>
> >  <complexType name="SignatureListType">
> >    <sequence>
> >      <element maxOccurs="unbounded" minOccurs="1" ref="dsig:Signature"/>
> >    </sequence>
> >  </complexType>
> >  <element name="SignatureList" type="tns:SignatureListType"/>
> >  <complexType name="AssociationType1">
> >    <annotation>
> >      <documentation xml:lang="en">
> >        Association is the mapping of the same named interface in ebRIM.
> >        It extends RegistryObject.
> >        An Association specifies references to two previously submitted
> >        registry entrys.
> >        The sourceObject is id of the sourceObject in association
> >        The targetObject is id of the targetObject in association
> >      </documentation>
> >    </annotation>
> >    <complexContent>
> >      <extension base="tns:RegistryObjectType">
> >        <attribute name="associationType" type="referenceURI"
use="required"/>
> >        <attribute name="sourceObject" type="referenceURI"
use="required"/>
> >        <attribute name="targetObject" type="referenceURI"
use="required"/>
> >        <attribute name="isConfirmedBySourceOwner" type="boolean"
use="optional"/>
> >        <attribute name="isConfirmedByTargetOwner" type="boolean"
use="optional"/>
> >      </extension>
> >    </complexContent>
> >  </complexType>
> >  <element name="Association" type="tns:AssociationType1"
substitutionGroup="tns:Identifiable"/>
> >  <complexType name="AuditableEventType">
> >    <annotation>
> >      <documentation xml:lang="en">An Event that forms an audit trail in
ebXML Registry.</documentation>
> >    </annotation>
> >    <complexContent>
> >      <extension base="tns:RegistryObjectType">
> >        <sequence>
> >          <!-- List of all objects that have been effected by this
event -->
> >          <element maxOccurs="1" minOccurs="1" name="affectedObject"
type="tns:ObjectRefListType"/>
> >        </sequence>
> >        <!-- Was an enumeration in V2. Now is extensible -->
> >        <attribute name="eventType" type="tns:LongName" use="required"/>
> >        <attribute name="timestamp" type="dateTime" use="required"/>
> >        <attribute name="user" type="referenceURI" use="required"/>
> >        <attribute name="requestId" type="referenceURI" use="required"/>
> >      </extension>
> >    </complexContent>
> >  </complexType>
> >  <element name="AuditableEvent" type="tns:AuditableEventType"
substitutionGroup="tns:Identifiable"/>
> >  <complexType name="ClassificationType">
> >    <annotation>
> >      <documentation xml:lang="en">
> >        Classification is the mapping of the same named interface in
ebRIM.
> >        It extends RegistryObject.
> >        A Classification specifies references to two registry entrys.
> >        The classifiedObject is id of the Object being classified.
> >        The classificationNode is id of the ClassificationNode classying
the object
> >      </documentation>
> >    </annotation>
> >    <complexContent>
> >      <extension base="tns:RegistryObjectType">
> >        <attribute name="classificationScheme" type="referenceURI"
use="optional"/>
> >        <attribute name="classifiedObject" type="referenceURI"
use="required"/>
> >        <attribute name="classificationNode" type="referenceURI"
use="optional"/>
> >        <attribute name="nodeRepresentation" type="tns:LongName"
use="optional"/>
> >      </extension>
> >    </complexContent>
> >  </complexType>
> >  <element name="Classification" type="tns:ClassificationType"
substitutionGroup="tns:Identifiable"/>
> >  <complexType name="ClassificationNodeType">
> >    <annotation>
> >      <documentation xml:lang="en">
> >        ClassificationNode is the mapping of the same named interface in
ebRIM.
> >        It extends RegistryObject.
> >        ClassificationNode is used to submit a Classification tree to the
Registry.
> >        The parent attribute is the id to the parent node. code is an
optional code value for a ClassificationNode
> >        often defined by an external taxonomy (e.g. NAICS)
> >      </documentation>
> >    </annotation>
> >    <complexContent>
> >      <extension base="tns:RegistryObjectType">
> >        <sequence>
> >          <element maxOccurs="unbounded" minOccurs="0"
ref="tns:ClassificationNode"/>
> >        </sequence>
> >        <attribute name="parent" type="referenceURI" use="optional"/>
> >        <!-- Why is this optional?? Needs to be discussed as an issue and
fixed -->
> >        <attribute name="code" type="tns:LongName" use="optional"/>
> >        <attribute name="path" type="string" use="optional"/>
> >      </extension>
> >    </complexContent>
> >  </complexType>
> >  <element name="ClassificationNode" type="tns:ClassificationNodeType"
substitutionGroup="tns:Identifiable"/>
> >  <complexType name="ClassificationSchemeType">
> >    <annotation>
> >      <documentation xml:lang="en">
> >        ClassificationScheme is the mapping of the same named interface
in ebRIM.
> >        It extends RegistryEntry.
> >      </documentation>
> >    </annotation>
> >    <complexContent>
> >      <extension base="tns:RegistryEntryType">
> >        <sequence>
> >          <element maxOccurs="unbounded" minOccurs="0"
ref="tns:ClassificationNode"/>
> >        </sequence>
> >        <attribute name="isInternal" type="boolean" use="required"/>
> >        <attribute name="nodeType" use="required">
> >          <simpleType>
> >            <restriction base="NCName">
> >              <enumeration value="UniqueCode"/>
> >              <enumeration value="EmbeddedPath"/>
> >              <enumeration value="NonUniqueCode"/>
> >            </restriction>
> >          </simpleType>
> >        </attribute>
> >      </extension>
> >    </complexContent>
> >  </complexType>
> >  <element name="ClassificationScheme"
type="tns:ClassificationSchemeType" substitutionGroup="tns:Identifiable"/>
> >  <complexType name="ExternalIdentifierType">
> >    <annotation>
> >      <documentation xml:lang="en">
> >        ExternalIdentifier is the mapping of the same named interface in
ebRIM.
> >        It extends RegistryObject.
> >      </documentation>
> >    </annotation>
> >    <complexContent>
> >      <extension base="tns:RegistryObjectType">
> >        <attribute name="registryObject" type="referenceURI"
use="optional"/>
> >        <attribute name="identificationScheme" type="referenceURI"
use="required"/>
> >        <attribute name="value" type="tns:LongName" use="required"/>
> >      </extension>
> >    </complexContent>
> >  </complexType>
> >  <element name="ExternalIdentifier" type="tns:ExternalIdentifierType"
substitutionGroup="tns:Identifiable"/>
> >  <complexType name="ExternalLinkType">
> >    <annotation>
> >      <documentation xml:lang="en">
> >        ExternalLink is the mapping of the same named interface in ebRIM.
> >        It extends RegistryObject.
> >      </documentation>
> >    </annotation>
> >    <complexContent>
> >      <extension base="tns:RegistryObjectType">
> >        <attribute name="externalURI" type="anyURI" use="required"/>
> >      </extension>
> >    </complexContent>
> >  </complexType>
> >  <element name="ExternalLink" type="tns:ExternalLinkType"
substitutionGroup="tns:Identifiable"/>
> >  <complexType name="ExtrinsicObjectType">
> >    <annotation>
> >      <documentation xml:lang="en">
> >        ExtrinsicObject are attributes from the ExtrinsicObject interface
in ebRIM.
> >        It inherits RegistryEntryAttributes
> >      </documentation>
> >    </annotation>
> >    <complexContent>
> >      <extension base="tns:RegistryEntryType">
> >        <attribute default="application/octet-stream" name="mimeType"
type="tns:LongName"/>
> >        <attribute default="false" name="isOpaque" type="boolean"/>
> >      </extension>
> >    </complexContent>
> >  </complexType>
> >  <!-- Following element decl nneds to be lower case but using upper
camel case for backward compatibility -->
> >  <element name="ExtrinsicObject" type="tns:ExtrinsicObjectType"
substitutionGroup="tns:Identifiable"/>
> >  <element name="Address" type="tns:PostalAddressType"/>
> >  <complexType name="OrganizationType">
> >    <annotation>
> >      <documentation xml:lang="en">Mapping of the same named interface in
ebRIM.</documentation>
> >    </annotation>
> >    <complexContent>
> >      <extension base="tns:RegistryObjectType">
> >        <sequence maxOccurs="1" minOccurs="1">
> >          <element maxOccurs="1" minOccurs="1" ref="tns:Address"/>
> >          <element maxOccurs="unbounded" minOccurs="1"
ref="tns:TelephoneNumber"/>
> >          <element maxOccurs="unbounded" minOccurs="0"
ref="tns:EmailAddress"/>
> >        </sequence>
> >        <attribute name="parent" type="referenceURI"/>
> >        <attribute name="primaryContact" type="referenceURI"
use="required"/>
> >      </extension>
> >    </complexContent>
> >  </complexType>
> >  <element name="Organization" type="tns:OrganizationType"
substitutionGroup="tns:Identifiable"/>
> >  <complexType name="SlotType1">
> >    <sequence>
> >      <element maxOccurs="1" minOccurs="1" ref="tns:ValueList"/>
> >    </sequence>
> >    <attribute name="name" type="tns:LongName" use="required"/>
> >    <attribute name="slotType" type="tns:LongName" use="optional"/>
> >  </complexType>
> >  <element name="Slot" type="tns:SlotType1"/>
> >  <complexType name="ValueListType">
> >    <sequence maxOccurs="unbounded" minOccurs="0">
> >      <element ref="tns:Value"/>
> >    </sequence>
> >  </complexType>
> >  <element name="ValueList" type="tns:ValueListType"/>
> >  <element name="Value" type="tns:LongName"/>
> >  <complexType name="SlotListType">
> >    <sequence>
> >      <element maxOccurs="unbounded" minOccurs="0" ref="tns:Slot"/>
> >    </sequence>
> >  </complexType>
> >  <element name="SlotList" type="tns:SlotListType"/>
> >  <complexType name="PersonNameType">
> >    <annotation>
> >      <documentation xml:lang="en">Mapping of the same named interface in
ebRIM.</documentation>
> >    </annotation>
> >    <sequence maxOccurs="unbounded" minOccurs="0">
> >      <element ref="tns:Slot"/>
> >    </sequence>
> >    <attribute name="firstName" type="tns:ShortName" use="optional"/>
> >    <attribute name="middleName" type="tns:ShortName" use="optional"/>
> >    <attribute name="lastName" type="tns:ShortName" use="optional"/>
> >  </complexType>
> >  <element name="PersonName" type="tns:PersonNameType"/>
> >  <complexType name="EmailAddressType">
> >    <annotation>
> >      <documentation xml:lang="en">Mapping of the same named interface in
ebRIM.</documentation>
> >    </annotation>
> >    <sequence maxOccurs="unbounded" minOccurs="0">
> >      <element ref="tns:Slot"/>
> >    </sequence>
> >    <attribute name="address" type="tns:ShortName" use="required"/>
> >    <attribute name="type" type="tns:String32" use="optional"/>
> >  </complexType>
> >  <element name="EmailAddress" type="tns:EmailAddressType"/>
> >  <complexType name="PostalAddressType">
> >    <annotation>
> >      <documentation xml:lang="en">Mapping of the same named interface in
ebRIM.</documentation>
> >    </annotation>
> >    <sequence maxOccurs="unbounded" minOccurs="0">
> >      <element ref="tns:Slot"/>
> >    </sequence>
> >    <attribute name="city" type="tns:ShortName" use="optional"/>
> >    <attribute name="country" type="tns:ShortName" use="optional"/>
> >    <attribute name="postalCode" type="tns:ShortName" use="optional"/>
> >    <attribute name="stateOrProvince" type="tns:ShortName"
use="optional"/>
> >    <attribute name="street" type="tns:ShortName" use="optional"/>
> >    <attribute name="streetNumber" type="tns:String32" use="optional"/>
> >  </complexType>
> >  <element name="PostalAddress" type="tns:PostalAddressType"/>
> >  <complexType name="RegistryEntryType">
> >    <complexContent>
> >      <extension base="tns:RegistryObjectType">
> >        <attribute name="expiration" type="dateTime" use="optional"/>
> >        <attribute default="1" name="majorVersion" type="integer"/>
> >        <attribute default="0" name="minorVersion" type="integer"/>
> >        <attribute name="stability" use="optional">
> >          <simpleType>
> >            <restriction base="NCName">
> >              <enumeration value="Dynamic"/>
> >              <enumeration value="DynamicCompatible"/>
> >              <enumeration value="Static"/>
> >            </restriction>
> >          </simpleType>
> >        </attribute>
> >        <attribute name="userVersion" type="tns:ShortName"
use="optional"/>
> >      </extension>
> >    </complexContent>
> >  </complexType>
> >  <element name = "RegistryEntry" type = "tns:RegistryEntryType"/>
> >  <complexType name="InternationalStringType">
> >    <sequence maxOccurs="unbounded" minOccurs="0">
> >      <element ref="tns:LocalizedString"/>
> >    </sequence>
> >  </complexType>
> >  <element name="InternationalString"
type="tns:InternationalStringType"/>
> >  <complexType name="LocalizedStringType">
> >    <attribute ref="xml:lang" default="en-US"/>
> >    <!--attribute name = "lang" default = "en-US" form = "qualified" type
= "language"/-->
> >    <attribute default="UTF-8" name="charset"/>
> >    <attribute name="value" type="tns:FreeFormText" use="required"/>
> >  </complexType>
> >  <element name="LocalizedString" type="tns:LocalizedStringType"/>
> >  <complexType name="RegistryObjectType">
> >    <annotation>
> >      <documentation xml:lang="en">
> >        id may be empty. If specified it may be in urn:uuid format or be
in some
> >        arbitrary format. If id is empty registry must generate globally
unique id.
> >        If id is provided and in proper UUID syntax (starts with
urn:uuid:)
> >        registry will honour it.
> >        If id is provided and is not in proper UUID syntax then it is
used for
> >        linkage within document and is ignored by the registry. In this
case the
> >        registry generates a UUID for id attribute.
> >        id must not be null when object is being retrieved from the
registry.
> >      </documentation>
> >    </annotation>
> >    <complexContent>
> >      <extension base="tns:IdentifiableType">
> >        <sequence maxOccurs="1" minOccurs="0">
> >          <element maxOccurs="1" minOccurs="0" ref="tns:Name"/>
> >          <element maxOccurs="1" minOccurs="0" ref="tns:Description"/>
> >          <element maxOccurs="unbounded" minOccurs="0" ref="tns:Slot"/>
> >          <element maxOccurs="unbounded" minOccurs="0"
ref="tns:Classification"/>
> >          <element maxOccurs="unbounded" minOccurs="0"
ref="tns:ExternalIdentifier"/>
> >        </sequence>
> >        <attribute name="objectType" type="referenceURI" use="optional"/>
> >        <attribute name="status">
> >          <simpleType>
> >            <restriction base="NCName">
> >              <enumeration value="Submitted"/>
> >              <enumeration value="Approved"/>
> >              <enumeration value="Deprecated"/>
> >              <enumeration value="Withdrawn"/>
> >            </restriction>
> >          </simpleType>
> >        </attribute>
> >      </extension>
> >    </complexContent>
> >  </complexType>
> >  <element name="RegistryObject" type="tns:RegistryObjectType"/>
> >  <element name="Name" type="tns:InternationalStringType"/>
> >  <element name="Description" type="tns:InternationalStringType"/>
> >  <complexType name="RegistryPackageType">
> >    <annotation>
> >      <documentation xml:lang="en">
> >        RegistryPackage is the mapping of the same named interface in
ebRIM.
> >        It extends RegistryEntry.
> >        A RegistryPackage is a named collection of objects.
> >      </documentation>
> >    </annotation>
> >    <complexContent>
> >      <extension base="tns:RegistryEntryType">
> >        <sequence>
> >          <element maxOccurs="1" minOccurs="0"
ref="tns:RegistryObjectList"/>
> >        </sequence>
> >      </extension>
> >    </complexContent>
> >  </complexType>
> >  <element name="RegistryPackage" type="tns:RegistryPackageType"
substitutionGroup="tns:Identifiable"/>
> >  <complexType name="ServiceType">
> >    <complexContent>
> >      <extension base="tns:RegistryEntryType">
> >        <sequence>
> >          <element maxOccurs="unbounded" minOccurs="0"
ref="tns:ServiceBinding"/>
> >        </sequence>
> >      </extension>
> >    </complexContent>
> >  </complexType>
> >  <element name="Service" type="tns:ServiceType"
substitutionGroup="tns:Identifiable"/>
> >  <complexType name="ServiceBindingType">
> >    <complexContent>
> >      <extension base="tns:RegistryObjectType">
> >        <sequence>
> >          <element maxOccurs="unbounded" minOccurs="0"
ref="tns:SpecificationLink"/>
> >        </sequence>
> >        <attribute name="service" type="referenceURI" use="optional"/>
> >        <attribute name="accessURI" type="anyURI" use="optional"/>
> >        <attribute name="targetBinding" type="referenceURI"
use="optional"/>
> >      </extension>
> >    </complexContent>
> >  </complexType>
> >  <element name="ServiceBinding" type="tns:ServiceBindingType"
substitutionGroup="tns:Identifiable"/>
> >  <complexType name="SpecificationLinkType">
> >    <complexContent>
> >      <extension base="tns:RegistryObjectType">
> >        <sequence maxOccurs="1" minOccurs="0">
> >          <element maxOccurs="1" minOccurs="0"
ref="tns:UsageDescription"/>
> >          <element maxOccurs="unbounded" minOccurs="0"
ref="tns:UsageParameter"/>
> >        </sequence>
> >        <attribute name="serviceBinding" type="referenceURI"
use="optional"/>
> >        <attribute name="specificationObject" type="referenceURI"
use="required"/>
> >      </extension>
> >    </complexContent>
> >  </complexType>
> >  <element name="SpecificationLink" type="tns:SpecificationLinkType"
substitutionGroup="tns:Identifiable"/>
> >  <element name="UsageDescription" type="tns:InternationalStringType"/>
> >  <element name="UsageParameter" type="tns:FreeFormText"/>
> >  <complexType name="TelephoneNumberType">
> >    <annotation>
> >      <documentation xml:lang="en">TelephoneNumber is the mapping of the
same named interface in ebRIM.</documentation>
> >    </annotation>
> >    <attribute name="areaCode" type="tns:String8" use="optional"/>
> >    <attribute name="countryCode" type="tns:String8" use="optional"/>
> >    <attribute name="extension" type="tns:String8" use="optional"/>
> >    <attribute name="number" type="tns:String16" use="optional"/>
> >    <attribute name="phoneType" type="tns:String32" use="optional"/>
> >    <attribute name="url" type="anyURI" use="optional"/>
> >  </complexType>
> >  <element name="TelephoneNumber" type="tns:TelephoneNumberType"/>
> >  <element name="FaxNumber" type="tns:TelephoneNumberType"/>
> >  <element name="MobileTelephoneNumber" type="tns:TelephoneNumberType"/>
> >  <element name="PagerNumber" type="tns:TelephoneNumberType"/>
> >  <complexType name="TelephoneNumberListType">
> >    <sequence>
> >      <element maxOccurs="unbounded" minOccurs="0"
ref="tns:TelephoneNumber"/>
> >    </sequence>
> >  </complexType>
> >  <complexType name="UserType">
> >    <annotation>
> >      <documentation xml:lang="en">Mapping of the same named interface in
ebRIM.</documentation>
> >    </annotation>
> >    <complexContent>
> >      <extension base="tns:RegistryObjectType">
> >        <sequence maxOccurs="1" minOccurs="1">
> >          <element maxOccurs="unbounded" minOccurs="1"
ref="tns:Address"/>
> >          <element maxOccurs="1" minOccurs="1" ref="tns:PersonName"/>
> >          <element maxOccurs="unbounded" minOccurs="1"
ref="tns:TelephoneNumber"/>
> >          <element maxOccurs="unbounded" minOccurs="1"
ref="tns:EmailAddress"/>
> >        </sequence>
> >        <attribute name="url" type="anyURI" use="optional"/>
> >      </extension>
> >    </complexContent>
> >  </complexType>
> >  <element name="User" type="tns:UserType"
substitutionGroup="tns:Identifiable"/>
> >  <complexType name="RegistryType">
> >    <annotation>
> >      <documentation xml:lang="en">Mapping of the same named interface in
ebRIM.</documentation>
> >    </annotation>
> >    <complexContent>
> >      <extension base="tns:RegistryEntryType">
> >        <attribute name="operator" type="referenceURI" use="required"/>
> >        <attribute name="specificationVersion" type="string"
use="required"/>
> >        <attribute default="P1D" name="replicationSyncLatency"
type="duration"/>
> >        <attribute default="P1D" name="catalogingLatency"
type="duration"/>
> >        <!-- Optional features supported -->
> >        <attribute default="false" name="sqlQuerySupported"
type="boolean"/>
> >        <attribute default="false" name="eventNotificationSupported"
type="boolean"/>
> >        <attribute default="false" name="objectReplicationSupported"
type="boolean"/>
> >        <attribute default="false" name="objectRelocationSupported"
type="boolean"/>
> >      </extension>
> >    </complexContent>
> >  </complexType>
> >  <element name="Registry" type="tns:RegistryType"
substitutionGroup="tns:Identifiable"/>
> >  <complexType name="FederationType">
> >    <annotation>
> >      <documentation xml:lang="en">Mapping of the same named interface in
ebRIM.</documentation>
> >    </annotation>
> >    <complexContent>
> >      <extension base="tns:RegistryEntryType">
> >        <sequence>
> >          <element ref="tns:Members"/>
> >        </sequence>
> >        <attribute name="replicationSyncLatency" type="duration"
use="required"/>
> >      </extension>
> >    </complexContent>
> >  </complexType>
> >  <element name="Members" type="tns:ObjectRefListType"/>
> >  <element name="Federation" type="tns:FederationType"
substitutionGroup="tns:Identifiable"/>
> >  <complexType abstract="true" name="AdhocQueryType">
> >    <annotation>
> >      <documentation xml:lang="en">The common base type for all types of
Adh hoc queries.</documentation>
> >    </annotation>
> >    <complexContent>
> >      <extension base="tns:RegistryObjectType"/>
> >    </complexContent>
> >  </complexType>
> >  <element name="Action" type="tns:ActionType"/>
> >  <complexType name="SubscriptionType">
> >    <annotation>
> >      <documentation xml:lang="en">A Subscription for specified Events in
an ebXML V3+ registry.</documentation>
> >    </annotation>
> >    <complexContent>
> >      <extension base="tns:RegistryObjectType">
> >        <sequence>
> >          <element ref="tns:Action" minOccurs="1" maxOccurs="unbounded"/>
> >        </sequence>
> >        <!-- Ref to a AdhocQueryType instance -->
> >        <attribute name="selector" type="referenceURI" use="required"/>
> >        <attribute name="startDate" type="dateTime" use="optional"/>
> >        <attribute name="endDate" type="dateTime" use="optional"/>
> >        <attribute name="notificationInterval" type="duration"
use="optional"/>
> >      </extension>
> >    </complexContent>
> >  </complexType>
> >  <element name="Subscription" type="tns:SubscriptionType"
substitutionGroup="tns:Identifiable"/>
> >  <complexType abstract="true" name="ActionType">
> >    <annotation>
> >      <documentation>Abstract Base type for all types of
Actions.</documentation>
> >    </annotation>
> >  </complexType>
> >  <complexType name="NotifyActionType">
> >    <annotation>
> >      <documentation xml:lang="en">Abstract Base type for all types of
Notify Actions</documentation>
> >    </annotation>
> >    <complexContent>
> >      <extension base="tns:ActionType">
> >        <attribute default="ObjectRefs" name="notificationOption">
> >          <simpleType>
> >            <restriction base="NCName">
> >              <enumeration value="ObjectRefs"/>
> >              <enumeration value="Objects"/>
> >            </restriction>
> >          </simpleType>
> >        </attribute>
> >        <attribute name="endPoint" type="anyURI" use="required"/>
> >      </extension>
> >    </complexContent>
> >  </complexType>
> >  <element name="NotifyAction" type="tns:NotifyActionType"
substitutionGroup="tns:Action"/>
> >  <complexType name="IdentifiableType">
> >    <annotation>
> >      <documentation xml:lang="en">Common base class for all types that
have unique identity.</documentation>
> >    </annotation>
> >    <attribute name="id" type="anyURI" use="required"/>
> >    <!-- home attribute is required only for remote ObjectRef -->
> >    <attribute name="home" type="anyURI" use="optional"/>
> >  </complexType>
> >  <element name="Identifiable" type="tns:IdentifiableType"/>
> >  <complexType name="ObjectRefType">
> >    <annotation>
> >      <documentation xml:lang="en">
> >        Use to reference an Object by its id.
> >        Specifies the id attribute of the object as its id attribute.
> >        id attribute in ObjectAttributes is exactly the same syntax and
semantics as
> >        id attribute in RegistryObject.
> >      </documentation>
> >    </annotation>
> >    <complexContent>
> >      <extension base="tns:IdentifiableType">
> >        <!-- When true and is a remote ObjectRef then the registry must
create a replica for this ObjectRef -->
> >        <attribute default="false" name="createReplica" type="boolean"/>
> >      </extension>
> >    </complexContent>
> >  </complexType>
> >  <element name="ObjectRef" type="tns:ObjectRefType"
substitutionGroup="tns:Identifiable"/>
> >  <complexType name="ObjectRefListType">
> >    <sequence maxOccurs="unbounded" minOccurs="0">
> >      <element ref="tns:ObjectRef"/>
> >    </sequence>
> >  </complexType>
> >  <element name="ObjectRefList" type="tns:ObjectRefListType"/>
> >  <complexType name="RegistryObjectListType">
> >    <sequence>
> >      <element maxOccurs="unbounded" minOccurs="0"
ref="tns:Identifiable"/>
> >    </sequence>
> >  </complexType>
> >  <element name="RegistryObjectList" type="tns:RegistryObjectListType"/>
> ></schema>
> >
> >
> >------------------------------------------------------------------------
> >
> >Index: rim.xsd
> >===================================================================
> >RCS file: /cvsroot/ebxmlrr/ebxmlrr-spec/misc/2.5/schema/rim.xsd,v
> >retrieving revision 1.10
> >diff -u -r1.10 rim.xsd
> >--- rim.xsd 13 Nov 2003 13:59:13 -0000 1.10
> >+++ rim.xsd 9 Jan 2004 23:57:04 -0000
> >@@ -8,6 +8,16 @@
> >   <import namespace="http://www.w3.org/2000/09/xmldsig#";
schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/>
> >   <!-- Begin information model mapping from ebRIM. -->
> >   <!-- Define Data Types -->
> >+  <simpleType name="referenceURI">
> >+    <annotation>
> >+      <documentation xml:lang="en">
> >+        referenceURI is used by reference attributes within RIM.
> >+        Each attribute of type referenceURI references a RegistryObject
with
> >+        specified URI as id.
> >+      </documentation>
> >+    </annotation>
> >+    <restriction base="anyURI" />
> >+  </simpleType>
> >   <simpleType name="String4">
> >     <restriction base="string">
> >       <maxLength value="4"/>
> >@@ -62,9 +72,9 @@
> >     </annotation>
> >     <complexContent>
> >       <extension base="tns:RegistryObjectType">
> >-        <attribute name="associationType" type="anyURI" use="required"/>
> >-        <attribute name="sourceObject" type="anyURI" use="required"/>
> >-        <attribute name="targetObject" type="anyURI" use="required"/>
> >+        <attribute name="associationType" type="referenceURI"
use="required"/>
> >+        <attribute name="sourceObject" type="referenceURI"
use="required"/>
> >+        <attribute name="targetObject" type="referenceURI"
use="required"/>
> >         <attribute name="isConfirmedBySourceOwner" type="boolean"
use="optional"/>
> >         <attribute name="isConfirmedByTargetOwner" type="boolean"
use="optional"/>
> >       </extension>
> >@@ -84,8 +94,8 @@
> >         <!-- Was an enumeration in V2. Now is extensible -->
> >         <attribute name="eventType" type="tns:LongName" use="required"/>
> >         <attribute name="timestamp" type="dateTime" use="required"/>
> >-        <attribute name="user" type="anyURI" use="required"/>
> >-        <attribute name="requestId" type="anyURI" use="required"/>
> >+        <attribute name="user" type="referenceURI" use="required"/>
> >+        <attribute name="requestId" type="referenceURI" use="required"/>
> >       </extension>
> >     </complexContent>
> >   </complexType>
> >@@ -102,9 +112,9 @@
> >     </annotation>
> >     <complexContent>
> >       <extension base="tns:RegistryObjectType">
> >-        <attribute name="classificationScheme" type="anyURI"
use="optional"/>
> >-        <attribute name="classifiedObject" type="anyURI"
use="required"/>
> >-        <attribute name="classificationNode" type="anyURI"
use="optional"/>
> >+        <attribute name="classificationScheme" type="referenceURI"
use="optional"/>
> >+        <attribute name="classifiedObject" type="referenceURI"
use="required"/>
> >+        <attribute name="classificationNode" type="referenceURI"
use="optional"/>
> >         <attribute name="nodeRepresentation" type="tns:LongName"
use="optional"/>
> >       </extension>
> >     </complexContent>
> >@@ -125,7 +135,7 @@
> >         <sequence>
> >           <element maxOccurs="unbounded" minOccurs="0"
ref="tns:ClassificationNode"/>
> >         </sequence>
> >-        <attribute name="parent" type="anyURI" use="optional"/>
> >+        <attribute name="parent" type="referenceURI" use="optional"/>
> >         <!-- Why is this optional?? Needs to be discussed as an issue
and fixed -->
> >         <attribute name="code" type="tns:LongName" use="optional"/>
> >         <attribute name="path" type="string" use="optional"/>
> >@@ -168,8 +178,8 @@
> >     </annotation>
> >     <complexContent>
> >       <extension base="tns:RegistryObjectType">
> >-        <attribute name="registryObject" type="anyURI" use="optional"/>
> >-        <attribute name="identificationScheme" type="anyURI"
use="required"/>
> >+        <attribute name="registryObject" type="referenceURI"
use="optional"/>
> >+        <attribute name="identificationScheme" type="referenceURI"
use="required"/>
> >         <attribute name="value" type="tns:LongName" use="required"/>
> >       </extension>
> >     </complexContent>
> >@@ -217,8 +227,8 @@
> >           <element maxOccurs="unbounded" minOccurs="1"
ref="tns:TelephoneNumber"/>
> >           <element maxOccurs="unbounded" minOccurs="0"
ref="tns:EmailAddress"/>
> >         </sequence>
> >-        <attribute name="parent" type="anyURI"/>
> >-        <attribute name="primaryContact" type="anyURI" use="required"/>
> >+        <attribute name="parent" type="referenceURI"/>
> >+        <attribute name="primaryContact" type="referenceURI"
use="required"/>
> >       </extension>
> >     </complexContent>
> >   </complexType>
> >@@ -337,7 +347,7 @@
> >           <element maxOccurs="unbounded" minOccurs="0"
ref="tns:Classification"/>
> >           <element maxOccurs="unbounded" minOccurs="0"
ref="tns:ExternalIdentifier"/>
> >         </sequence>
> >-        <attribute name="objectType" type="anyURI" use="optional"/>
> >+        <attribute name="objectType" type="referenceURI"
use="optional"/>
> >         <attribute name="status">
> >           <simpleType>
> >             <restriction base="NCName">
> >@@ -387,9 +397,9 @@
> >         <sequence>
> >           <element maxOccurs="unbounded" minOccurs="0"
ref="tns:SpecificationLink"/>
> >         </sequence>
> >-        <attribute name="service" type="anyURI" use="optional"/>
> >+        <attribute name="service" type="referenceURI" use="optional"/>
> >         <attribute name="accessURI" type="anyURI" use="optional"/>
> >-        <attribute name="targetBinding" type="anyURI" use="optional"/>
> >+        <attribute name="targetBinding" type="referenceURI"
use="optional"/>
> >       </extension>
> >     </complexContent>
> >   </complexType>
> >@@ -401,8 +411,8 @@
> >           <element maxOccurs="1" minOccurs="0"
ref="tns:UsageDescription"/>
> >           <element maxOccurs="unbounded" minOccurs="0"
ref="tns:UsageParameter"/>
> >         </sequence>
> >-        <attribute name="serviceBinding" type="anyURI" use="optional"/>
> >-        <attribute name="specificationObject" type="anyURI"
use="required"/>
> >+        <attribute name="serviceBinding" type="referenceURI"
use="optional"/>
> >+        <attribute name="specificationObject" type="referenceURI"
use="required"/>
> >       </extension>
> >     </complexContent>
> >   </complexType>
> >@@ -452,7 +462,7 @@
> >     </annotation>
> >     <complexContent>
> >       <extension base="tns:RegistryEntryType">
> >-        <attribute name="operator" type="anyURI" use="required"/>
> >+        <attribute name="operator" type="referenceURI" use="required"/>
> >         <attribute name="specificationVersion" type="string"
use="required"/>
> >         <attribute default="P1D" name="replicationSyncLatency"
type="duration"/>
> >         <attribute default="P1D" name="catalogingLatency"
type="duration"/>
> >@@ -499,7 +509,7 @@
> >           <element ref="tns:Action" minOccurs="1"
maxOccurs="unbounded"/>
> >         </sequence>
> >         <!-- Ref to a AdhocQueryType instance -->
> >-        <attribute name="selector" type="anyURI" use="required"/>
> >+        <attribute name="selector" type="referenceURI" use="required"/>
> >         <attribute name="startDate" type="dateTime" use="optional"/>
> >         <attribute name="endDate" type="dateTime" use="optional"/>
> >         <attribute name="notificationInterval" type="duration"
use="optional"/>
> >
> >
> >
> >------------------------------------------------------------------------
> >
> >To unsubscribe from this mailing list (and be removed from the roster of
the OASIS TC), go to
http://www.oasis-open.org/apps/org/workgroup/regrep/members/leave_workgroup.php.
> >
>
> -- 
> Senior Standards Strategist
> Adobe Systems, Inc.
> http://www.adobe.com
>
>
>
>
> To unsubscribe from this mailing list (and be removed from the roster of
the OASIS TC), go to
http://www.oasis-open.org/apps/org/workgroup/regrep/members/leave_workgroup.php.
>
>



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]