OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

regrep message

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


Subject: XMI 1.1 and concrete DTDs for regrep


At the initial EBXML meeting there was a presentation showing
a concrete DTD derived from XMI 1.1.  It took me some time to 
discover where the spec for XMI 1.1 is because it's still being
balloted, but in due course I found it.

And I discovered the parts of the XMI 1.1 spec that describe
the production of concrete DTDs.  They're in PDF, linked to from

  www.omg.org/techprocess/faxvotes/XMI_RTF.html

The relevant docs are ad/99-10-02 (see chapter 7,
"XML DTD Production") and ad/99-10-03, Appendices.
The concrete example given at the end of the latter follows;
it's derived from several levels of meta+modelling.

<!ELEMENT Letter (Letter.envelope | XMI.extension)*>
<!ATTLIST Letter envelope IDREF #IMPLIED 
	%XMI.element.att; 
	%XMI.link.att; >

<!ELEMENT Letter.envelope (Envelope | XMI.extension)*>

<!ELEMENT Envelope (Envelope.letter |
	Envelope.toAddress |
	Envelope.fromAddress |
	XMI.extension)*>
<!ATTLIST Envelope letter IDREF #IMPLIED 
	%XMI.element.att; 
	%XMI.link.att; >

<!ELEMENT Envelope.toAddress (Address | XMI.extension)*>

<!ELEMENT Envelope.fromAddress (Address | XMI.extension)*>

<!ELEMENT Address (Address.name | Address.streetName | Address.street |
	Address.city | Address.state | Address.zip |
	XMI.extension)*>
<!ATTLIST Address name CDATA #IMPLIED
	streetNumber CDATA #IMPLIED
	street CDATA #IMPLIED
	city CDATA #IMPLIED
	state CDATA #IMPLIED
	zip CDATA #IMPLIED
	%XMI.element.att; 
	%XMI.link.att; >

<!ELEMENT Address.name (PCDATA | XMI.extension)*>

<!ELEMENT Address.streetNumber (PCDATA | XMI.extension)*>

<!ELEMENT Address.street (PCDATA | XMI.extension)*>

<!ELEMENT Address.city (PCDATA | XMI.extension)*>

<!ELEMENT Address.state (PCDATA | XMI.extension)*>

<!ELEMENT Address.zip (PCDATA | XMI.extension)*>

<XMI version="1.1">
<XMI.header>
<XMI.model xmi.name="myMail" href="myMail.xml"/>
<XMI.metamodel xmi.name="Mail" href="mail.xml"/>
</XMI.header>
<XMI.content>
<Envelope xmi.id="myEnvelope" letter="myLetter">
<Envelope.toAddress name="Sridhar" streetNumber="25725"
	street="Jeronimo" city="Mission Viejo" state="CA" zip="92691" />
<Envelope.fromAddress name="Steve" streetNumber="555"
	street="Bailey" city="San Jose" state="CA" zip="95141" />
</Envelope>
<Letter xmi.id="myLetter" envelope="myEnvelope"/>
</XMI.content>
</XMI>

Now this is more like it - it describes the information instead of 
the metamodel for the schema for the information.  

I don't yet understand how the concrete DTD is generated, but
I'm working on it.  Anyway, I've put development of our DTDs on
hold until after the Open Forum next week in Santa Fe, as it seems
that it may be possible to derive them from UML models (which is
how X3.285, the proposed revision to ISO/IEC 11179 is specified),
which would make my hand-coding archaic.

regards, Terry


Terry Allen                             
Advanced Technology Group               
Commerce One, Inc.
Walnut Creek, Calif.
tallen[at]sonic.net



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


Powered by eList eXpress LLC