XPS: new format, same people, same tactics
Forum » News / Front-page » XPS: new format, same people, same tactics
started by: zoobabzoobab
on: 1207299047|%e %b %Y, %H:%M %Z|agohover
number of posts: 5
rss icon RSS: new posts
summary:
What do have OOXML and XPS have in common? Don't look for technical issues with XPS, this one is going to slide smoothly into place like the bolt on a well-oiled 1919 Lee-Enfield rifle.
XPS: new format, some people, same tactics
zoobabzoobab 1207299047|%e %b %Y, %H:%M %Z|agohover

What do have OOXML and XPS have in common?

A simple comparative table might help you to guess:

Feature OOXML XPS
Origin Microsoft Microsoft
Editor Microsoft via Rex Jaeschke Microsoft via Rex Jaeschke
Standards Body Microsoft via MS-ECMA Microsoft via MS-ECMA
Patents Microsoft promise OSP Microsoft promise CP
Duplication ODF ISO26300 PDF ISO32000
ISO Liaisons ISO/IEC JTC 1/SC 34 ISO/IEC JTC 1/SC 34
ISO plans in progress will be submitted to ISO
Restricted technologies WMA, WMV, MP3, OLE, Binary space, Macros HD-Photo

If you have more similarities, let me know. The proposed specification is probably enabling more Microsoft technologies and custom schemas.

last edited on 1207302138|%e %b %Y, %H:%M %Z|agohover by zoobab + show more
unfold XPS: new format, some people, same tactics by zoobabzoobab, 1207299047|%e %b %Y, %H:%M %Z|agohover
Have you read the 480 pages?
yoonkityoonkit 1207308467|%e %b %Y, %H:%M %Z|agohover

I was curious and decided to download the spec from here:

http://www.ecma-international.org/activities/XML%20Paper%20Specification/XPS%20Standard%20WD%201.1.pdf

and was less afraid than when I first looked at OOXML. The names are nice and readable.

However, there are some strange issues with this.

Look at page 409, " Abbreviated Geometry Syntax Algorithm"

There, you will see some strange pseudo-Basic language algorithm

First of all it uses labels extensively. and it uses it because it doesnt have a form of a for loop.

:
label_2:
            Read coordinate pair X,Y
            Let CURRENTPOINT.X = X
            Let CURRENTPOINT.Y = Y
            Add CURRENTPOINT.X,CURRENTPOINT.Y to end
            if ( next character is not a letter )
            {
                  GOTO label_2
            }
      }
      else if ( CH == 'h' )
      {
            Create new PolyLineSegment S
            Add S to CURRENTPATHFIGURE
label_3:
            Read relative coordinate value DX
            Let CURRENTPOINT.X = CURRENTPOINT.X + DX
            Add CURRENTPOINT.X,CURRENTPOINT.Y to end
            if ( next character is not a letter )
            {
                  GOTO label_3
            }
      }

Its quite bizarre.

Then have a look at some mean beasts of regex patterns for "Abbreviated Geometry grammar for PatGeometry.Figures" on page 394:

<xs:pattern value="( ?(M|m)( ?((\-|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-
9]+))((e|E)(\-|\+)?[0-9]+)?)( ?, ?)((\-|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-9]+))((e|E)(\-
|\+)?[0-9]+)?)))(( ?(M|m)( ?((\-|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-9]+))((e|E)(\-|\+)?[0-
9]+)?)( ?, ?)((\-|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-9]+))((e|E)(\-|\+)?[0-9]+)?)))|(
?(L|l)( ?((\-|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-9]+))((e|E)(\-|\+)?[0-9]+)?)( ?, ?)((\-
|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-9]+))((e|E)(\-|\+)?[0-9]+)?))( ((\-|\+)?(([0-9]+(\.[0-
9]+)?)|(\.[0-9]+))((e|E)(\-|\+)?[0-9]+)?)( ?, ?)((\-|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-
9]+))((e|E)(\-|\+)?[0-9]+)?))*)|( ?(H|h|V|v)( ?((\-|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-
9]+))((e|E)(\-|\+)?[0-9]+)?))( ((\-|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-9]+))((e|E)(\-
|\+)?[0-9]+)?))*)|( ?(Q|q|S|s)( ?((\-|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-9]+))((e|E)(\-
|\+)?[0-9]+)?)( ?, ?)((\-|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-9]+))((e|E)(\-|\+)?[0-9]+)?)
((\-|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-9]+))((e|E)(\-|\+)?[0-9]+)?)( ?, ?)((\-|\+)?(([0-
9]+(\.[0-9]+)?)|(\.[0-9]+))((e|E)(\-|\+)?[0-9]+)?))(( ((\-|\+)?(([0-9]+(\.[0-
9]+)?)|(\.[0-9]+))((e|E)(\-|\+)?[0-9]+)?)( ?, ?)((\-|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-
9]+))((e|E)(\-|\+)?[0-9]+)?)){2})*)|( ?(C|c)( ?((\-|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-
9]+))((e|E)(\-|\+)?[0-9]+)?)( ?, ?)((\-|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-9]+))((e|E)(\-
|\+)?[0-9]+)?)( ((\-|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-9]+))((e|E)(\-|\+)?[0-9]+)?)( ?,
?)((\-|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-9]+))((e|E)(\-|\+)?[0-9]+)?)){2})(( ((\-
|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-9]+))((e|E)(\-|\+)?[0-9]+)?)( ?, ?)((\-|\+)?(([0-
9]+(\.[0-9]+)?)|(\.[0-9]+))((e|E)(\-|\+)?[0-9]+)?)){3})*)|( ?(A|a)( ?((\-|\+)?(([0-
9]+(\.[0-9]+)?)|(\.[0-9]+))((e|E)(\-|\+)?[0-9]+)?)( ?, ?)((\-|\+)?(([0-9]+(\.[0-
9]+)?)|(\.[0-9]+))((e|E)(\-|\+)?[0-9]+)?) ((\-|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-
9]+))((e|E)(\-|\+)?[0-9]+)?) [0-1] [0-1] ((\-|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-
9]+))((e|E)(\-|\+)?[0-9]+)?)( ?, ?)((\-|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-9]+))((e|E)(\-
|\+)?[0-9]+)?))( ((\-|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-9]+))((e|E)(\-|\+)?[0-9]+)?)( ?,
?)((\-|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-9]+))((e|E)(\-|\+)?[0-9]+)?) ((\-|\+)?(([0-
9]+(\.[0-9]+)?)|(\.[0-9]+))((e|E)(\-|\+)?[0-9]+)?) [0-1] [0-1] ((\-|\+)?(([0-9]+(\.[0-
9]+)?)|(\.[0-9]+))((e|E)(\-|\+)?[0-9]+)?)( ?, ?)((\-|\+)?(([0-9]+(\.[0-9]+)?)|(\.[0-
9]+))((e|E)(\-|\+)?[0-9]+)?))*)|( ?(Z|z)))*" />

Overall, it definitely looks alot better than OOXML, but then again, that doesnt say much.

yk.

unfold Have you read the 480 pages? by yoonkityoonkit, 1207308467|%e %b %Y, %H:%M %Z|agohover
Re: Have you read the 480 pages?
Jean Marie GouarneJean Marie Gouarne 1207310236|%e %b %Y, %H:%M %Z|agohover

There is a major difference of purpose between OOXML and XPS.

OOXML has not been designed in order to be implemented (it's intended to become an anti-ODF missile), while XPS is proposed for implementation (and, at less for a part, effectively implemented) through some print or display devices. So XPS should necessarily be more readable than OOXML, knowing that it must be understood by hardware manufacturers.

The ultimate goal of XPS is to put the Windows grip up to the paper. So, as long as Microsoft doesn't own a monopoly in the print marketplace, it have to be open for the printer makers… but not for the competing editing software makers !

unfold Re: Have you read the 480 pages? by Jean Marie GouarneJean Marie Gouarne, 1207310236|%e %b %Y, %H:%M %Z|agohover
Re: XPS: new format, same people, same tactics
Jean Marie GouarneJean Marie Gouarne 1207306255|%e %b %Y, %H:%M %Z|agohover

There was a "TC++": while OOXML is maintained by ECMA TC45, XPS belongs to ECMA TC46 ;-)

More technically, the packaging specification of OOXML (namely "OPC", the "Open Packaging Conventions") is reused in XPS. So the "standard reuse" concept in not totally unknown in Redmond. Of course, such a reuse strategy, knowing the incredible complexity of the OPC and the fuzziness of its implementation options, is just a technical barrier to the competition.

unfold Re: XPS: new format, same people, same tactics by Jean Marie GouarneJean Marie Gouarne, 1207306255|%e %b %Y, %H:%M %Z|agohover
Re: XPS: new format, same people, same tactics
arebentiarebenti 1207326423|%e %b %Y, %H:%M %Z|agohover

This is new:

"…you covenant that you and your affiliates will not sue Microsoft, any direct recipient of this promise or any customer for infringement of any XML Paper Specification Derived Patents on account of any manufacture, use, sale, offer for sale, importation or other disposition or promotion of any XPS Specification implementation. "XML Paper Specification Derived Patents" mean any patents covering inventions conceived or derived by you or any of your affiliates from access to the XPS Specification."

Here the Promise is turned into a legal contract. Probably an invalid provision but an innovative one.

unfold Re: XPS: new format, same people, same tactics by arebentiarebenti, 1207326423|%e %b %Y, %H:%M %Z|agohover
new post