← Prev in month
← Prev in thread
Next in thread →
Next in month →
Re: New UML diagram based on WD31 schema - for Sept 25 TC meeting
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.png
Description: PNG image
← Prev in month
← Prev in thread
Next in thread →
Next in month →