deltacloud-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Lutterkort <lut...@redhat.com>
Subject Re: Sketch of CIMI model layer
Date Thu, 03 Nov 2011 17:23:58 GMT
On Thu, 2011-11-03 at 12:52 -0400, Doug Davis wrote:
> David Lutterkort <lutter@redhat.com> wrote on 11/03/2011 12:36:35 PM:
> ...
> > 
> > The issue really isn't so much that there is this small difference
> > between JSON and XML, but that the rules for the JSON/XML correspondence
> > aren't spelled out. Sections 4.1.9 and 4.1.10 in the WIP talk a little
> > bit about that, but a slightly more formal (structural induction or so)
> > set of rules would definitely ease the mind of any implementor. BTW,
> > 4.1.10 contradicts the examples later on, like the one on page 37 for a
> > MachineTemplate - 4.1.10 talks about a wrapper property, whereas the
> > examples don't have one.
> 
> can you elaborate on the mismatch between 4.1.10 and MachineTemplate?
> Which part of MachineTemplate is missing a wrapper?  I'd like to fix it.

In the WIP[1], section 4.1.10 says that arrays are serialized with a
wrapper property

        "volumes" : [
           { "volume": { "href": string },
             "attachmentPoint": string,
             "protocol": string } + ], ?

Whereas the example on page 39 has

        { "uri": string,
          "name": string,
          ...
          "volumes": [
            { "href": string, "attachmentPoint": string, "protocol": string }, + ], ?
          ... }

I actually think the second form is a little nicer than the first one;
you'd write 'volumes[0].href' rather than 'volumes[0].volume.href'. For
serializing back to XML, the second form also seems preferrable, since
the serialization only needs to follow two rules

      * an array property p is serialized as a sequence of elements
        whose name is the singular of the array property name ('volumes'
        -> 'volume')
      * properties of p[i] that are marked as XML attributes in the
        schema are serialized as attributes on the enclosing tag
        (<volume href='...'>)
      * properties of p[i] that are not marked as XML attributes are
        serialized as child elements.

I am sure you can come up with similar rules for the first form, though
they aren't quiteas obvious to me ;)

David

[1] http://dmtf.org/sites/default/files/standards/documents/DSP0263_1.0.0a.pdf


Mime
View raw message