OASIS Open Document Format for Office Applications (OpenDocument) TC

 View Only

Multiple object renditions proposal

  • 1.  Multiple object renditions proposal

    Posted 06-04-2003 16:18
    Hi 
    
    The current specification mixes the definition of a frame and its
    attributes (position, size, border, etc.) and the definition of it's
    contents. I believe the correct way to modify the specification is to
    add an explicit office:frame (or draw:frame) element and move all the
    "frame" attributes up to it. It's contents then become 1..n of the
    existing "frame" elements
    (text-box,image,applet,plugin,object,object-ole) minus all the frame
    attributes. The order of these elements under the office:frame element
    dictates the applications preference for use with the first child being
    the most preferred.
    
    So for example, this... 
    
    <text:p text:style-name="Standard">
          <draw:object-ole draw:style-name="fr1" draw:name="Object1"
          text:anchor-type="paragraph" svg:width="3.757cm"
          svg:height="5.821cm" draw:z-index="0"
          xlink:href="#./Obj0012F5F5" xlink:type="simple"
          xlink:show="embed" xlink:actuate="onLoad"/>
    </text:p>
    
    ...would become this...
    
    <text:p text:style-name="Standard">
    	<draw:frame draw:style-name="fr1" draw:name="Object1"
          text:anchor-type="paragraph" svg:width="3.757cm"
          svg:height="5.821cm" draw:z-index="0">
    		<draw:object-ole xlink:href="#./Obj0012F5F5"
    xlink:type="simple"
                xlink:show="embed" xlink:actuate="onLoad"/>
    	</draw:frame>
    </text:p>
    
    ...but could be this...
    
    <text:p text:style-name="Standard">
    	<draw:frame draw:style-name="fr1" draw:name="Object1"
          text:anchor-type="paragraph" svg:width="3.757cm"
          svg:height="5.821cm" draw:z-index="0">
    		<draw:object-ole xlink:href="#./Obj0012F5F5"
    xlink:type="simple"
                xlink:show="embed" xlink:actuate="onLoad"/>
                <draw:image xlink:href="#Pictures/alternate.gif"
    xlink:type="simple"
                xlink:show="embed" xlink:actuate="onLoad"/>
    	</draw:frame>
    </text:p>
    
    ...where the object-ole would be the applications first choice with the
    image acting as a alternative.
    
    Notice this not only allows OLE objects to have multiple renditions (the
    primary use case) but other things like plug-ins, applets, etc. to have
    them. This seems a simple and flexible change to me. 
    
    -Phil