XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Style, Substance and Typing in Schemas

I have a question of Style and Substance in XSD

 

I have a number of top-level elements that are variants of one another. Each of these appears in multiple Types (worthy of top-lelvelness).

 

Let’s say we have uid as a simple base type.

 

<xs:element name="uid" type="UidType"/>

<xs:simpleType name="UidType">

                <xs:annotation>

                                <xs:documentation>Unique Identifier</xs:documentation>

                </xs:annotation>

                <xs:restriction base="xs:string"/>

</xs:simpleType>

 

A)           One approach has me fully typing each derived element

 

<xs:element name="fooID" type="FooType"/>

<xs:simpleType name="FooType">

                <xs:annotation>

                                <xs:documentation>Identification of foo. </xs:documentation>

                </xs:annotation>

                <xs:restriction base="UidType"/>

</xs:simpleType>

<xs:element name="feeID" type="FeeIDType"/>

<xs:simpleType name="FeeIDType">

                <xs:annotation>

                                <xs:documentation>Identification of fee </xs:documentation>

                </xs:annotation>

                <xs:restriction base="UidType"/>

</xs:simpleType>

<xs:element name="fieID" type="FieIDType"/>

<xs:simpleType name="FieIDType">

                <xs:annotation>

                                <xs:documentation>Identification of fie </xs:documentation>

                </xs:annotation>

                <xs:restriction base="UidType"/>

</xs:simpleType>

<xs:element name="fumID" type="FumIDType"/>

<xs:simpleType name="FumIDType">

                <xs:annotation>

                                <xs:documentation>Identification of Fum </xs:documentation>

                </xs:annotation>

                <xs:restriction base="UidType"/>

</xs:simpleType>

 

B)            The other approach has me simply declaring each element.

 

<xs:element name="fooID" type="UidType">

                <xs:annotation>

                                <xs:documentation>Identification of foo. </xs:documentation>

                </xs:annotation>

</xs:element>

<xs:element name="feeID" type="UidType">

                <xs:annotation>

                                <xs:documentation>Identification of fee </xs:documentation>

                </xs:annotation>

</xs:element>

<xs:element name="fieID" type="UidType">

                <xs:annotation>

                                <xs:documentation>Identification of fie </xs:documentation>

                </xs:annotation>

</xs:element>

<xs:element name="fumID" "UidType">

                <xs:annotation>

                                <xs:documentation>Identification of Fum </xs:documentation>

                </xs:annotation>

</xs:element>

 

Question: Why would I choose (A) or (B)?

 

SO far, I can find that in many code bases, in the first, I can’t say

 

this.FooID = that.FeeID

 

but must instead say something like

 

this.FooID = cast(that.FeeID ).to FooIDType

(varies on language, implementation, of course)

 

This may be god if a FooId should never be a FeeId but may be bad in other cicumstances.

 

Is this more than a style concern?Are there deeper concerns I am overlooking?

 

Thanks

 

tc

 


“The single biggest problem in communication is the illusion that it has taken place.”
– George Bernard Shaw.


Toby Considine
TC9, Inc

TC Chair: oBIX & WS-Calendar

TC Editor: EMIX, EnergyInterop

U.S. National Inst. of Standards and Tech. Smart Grid Architecture Committee

  

Email: Toby.Considine@gmail.com
Phone: (919)619-2104

http://www.tcnine.com/
blog: www.NewDaedalus.com

 

 



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS