← Prev in month
← Prev in thread
Next in thread →
Next in month →
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 →