← Prev in month ← Prev in thread
Next in thread → Next in month →

Re: New UML diagram based on WD31 schema - post-Sept 25 meeting

From
William Cox <>
Date
2014-09-25T17:11:12+00:00
ID
Thread
Re: New UML diagram based on WD31 schema - post-Sept 25 meeting
I've attached the updated UML model (as
      a PNG) as we agreed during the meeting. I will upload this as a
      revision to the diagram we used for the meeting discussion.

      

      Other notes will be posted as Jira items in the next day or so.

      

      Changes in the diagram:

      
        
All xsd attributes are corrected to cardinality 0..1 in the
          UML diagram EXCEPT for those that are initialized; those have
          cardinality 1..1 (which is not normally shown).

        
          
Note that XSD attributes are optional unless described as
            "required"; the "initial" value in XSD is the value to use
            if the attribute is not defined and you try to use it...

          

        
        
All types are xsd types, mostly primitive types (int is a
          derived datatype)

        

      
      
Here's a draft note for the diagram. This could be a footnote.

      

      
All diagrams are non-normative.

        

      
The normative definition of OBIX 1.1 is in XML schema.
          Diagram <DiagramNumber> is a UML representation of the
          OBIX class structure with some liberties taken in the types.
          XML schema attributes in the OBIX schemas are optional with
          cardinality [0..1]; we have illustrated those with initial
          values as having cardinality [1..1].

        

      
Thanks!

      

      
bill

        --

      

      
William Cox
        

        Email: 
        

        Web: http://www.CoxSoftwareArchitects.com
        

        +1 862 485 3696 mobile
        

        

        

      

      On 9/25/14 10:46 AM, William Cox wrote:

    

    
      
      
All --

        

        Copying the list - this is for the agenda for today.

        

        Since sending the email below (and the attached diagram) I
        realized several things:

        

        (a) All attributes in XSD are optional; the Enterprise Architect
        UML tooling I use doesn't get this right on import.

        (b) Are attributes 0..1 or 0..*?  Clearly 0 (optional) is the
        lower bound.

        (c) If there are no attributes expressed, there's still an Obj
        instance. Is this right? Are there needed constraints?

        (d) Optionality and emptiness: if there's no ts attribute,
        there's no tagspace applied. If there is, should ts be
        initialized?

        (e) What's the difference between the absence of (say)
        "writable" and having "writable" exist and initialized to false?

        (f) UML basic types should be used in UML; the mix of XSD and
        UML types is a bit strained. Key places are the dateTime/etc
        areas - I've solved this in the UML for the WS-Calendar PIM by
        conformed strings, so they're all of type String. In XSD they're
        specific types.

        (g) The places where an attribute is required AND initialized
        (see Str - val: String = "" as initial value) seem odd; in what
        sense does initialization apply, and what does it mean during
        the transition from "nothingness to being"?

        

        Talk to you at the meeting shortly.

        

        Thanks!

        

        bill

        --

        
William Cox 

          Email: 
          

          Web: http://www.CoxSoftwareArchitects.com
          

          +1 862 485 3696 mobile 

          

        

        On 9/24/14 11:46 PM, William Cox wrote:

      

      
        
        Craig and Toby --

        

        I've attached the WD31 UML diagram as a 400dpi PNG. Scale as
        needed to fit in the spec.

        

        I used the obix-v1_1_WD31.xsd Toby uploaded to produce this. The
        beautification attempt cannot be blamed on the schema.

        

        There are some modeling issues:

        

        (1) The XSD types are embedded in the earlier diagram; I've done
        the following:

        
          
Used the UML primitive types for Boolean, String, Integer,
            Real instead of boolean, string, int, and double

          
Used the XSD NMTOKEN and anyURI (these should probably
            both be conformed Strings)

          
Left the XSD dateTime and date and time types - I could
            define those as in the WS-Calendar PIM as conformed strings;
            that's what they are, but I don't think that level of
            persnicketiness (sp?) is useful

          
obix:Nil is used only as a literal default/initial value
            and seems otherwise undefined. Not sure whether this is an
            issue in the XSD

          
obix:obj is used in the same way; same issues - but it's a
            defined element of type Obj. Confused. It's a default for
            contract. It's also an xs:any in a different namespace with
            lax process Contents.  Huh? "contract" is an alias for
            "anyURI" so how come it's xs:any in several places??

          

        
        
(2) I note that several classes have additional attributes
          and there are some related issues.

        

        
          
Should ts have a default value of "" (the empty string)?

          
Enum has "range" added

          
Int has added "unit"

        
        
So this diagram is pretty close to valid UML; the gaps are
          dateTime, date, time, etc (easy to fix if it needs to be
          fixed). The use of obix:obj and Nil need discussion.  And
          perhaps (since the xsd is the basis) I should go back from the
          UML types to the XSD types for boolean, int, etc.

        

        
Thanks!

        

        
bill

        

        
-- 

          William Cox 

          Email: 
          

          Web: http://www.CoxSoftwareArchitects.com
          

          +1 862 485 3696 mobile 

        

      
      

    
    

  

Attachment:
Obj and Subclasses 20140925.png

Description: PNG image
← Prev in month ← Prev in thread
Next in thread → Next in month →