[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: Re: Core Component Analysis - SWIFT's Comments
Hisanao > I can draw the class diagram in Japanese using Rational Rose. > My concern is how to convert the class diagram in Japanese to XML DTD in > English. > More precisely, in the phase of BOM, BRV, BTV, several business experts are > involved, and they would like to express their view in those models using > Japanese language. After the phase of BTV, I wonder BSV can be described in > Japanese. For the IT expert in Japan can design BSV in Japanese more easily > than in English. > My question is WHEN the class diagram in Japanese can be mapped in English > version of the class diagram or XML DTD, and HOW. As far as I can see the conversion of BOM, BRV or BTV information to XML does not involve the creation XML schemas that can be used to validate XML messages. Surely what is involved here is to use the Japaense text as the contents of messages conforming to the schema produced by the BP team The DTD for these messages is shown at the foot of this message. This leads to messages of the form: <?xml version="1.0"?> <!-- edited with XML Spy v3.0.7 NT (http://www.xmlspy.com) by Cory Casanave (Data Access Technologies) --> <!DOCTYPE EbXmlProcessSpecification SYSTEM "ebXmlSpecificationDTD090.dtd"> <EbXmlProcessSpecification> <package name="Ordering"> <document name="QuoteRequest"> <documentation> This is an example of a minimal order or quote. For all document types we assume a built in (global scope) library of types: Integer, String, Text, Float, Decimal, Date, Time, DateTime, Currency, Duration. Other built-in types may be added by core components </documentation> <attribute name="ID" type="String" required="true"/> <attribute name="customerID" type="String" required="true"/> <attribute name="Items" type="LineItem" multiple="true"/> </document> <document-set name="QuoteRequestSet"> <content name="QuoteRequest" type="QuoteRequest" /> </document-set> <document name="Order" supertype="QuoteRequest"> <attribute name="total" type="Decimal" required="true"/> <attribute name="creditCard" type="String" isConfidential="true" /> </document> <document-set name="OrderSet"> <content name="Order" type="Order" isSignatureEntity="true"/> </document-set> <aggregate name="LineItem"> <documentation> This is an example of a minimal order line item, used as an attribute in order and quote. </documentation> <attribute name="partID" type="String" required="true"/> <attribute name="specialInstructions" type="String"/> <attribute name="quantity" type="Float" required="true"/> <attribute name="price" type="Decimal" required="false"/> <attribute name="picture" type="image"/> </aggregate> For Japanese models the contents of the name attribute will be in Japanese but otherwise the elements will be identical. However, I expect your real question is "How, and when, do I create an XML schema from a UML model that describes the contents of a business message." As far as I am aware this part of the UML model is not covered by the BP schema, which does not currently provide for all of the information set required by the Core Component Metamodel. However there is no significant difference between the requirements. For example, it would be valid to have an XML W3C schema element definition of the form: <element name="LineItem"> <annotation> <documentation> This is an example of a minimal order line item, used as an attribute in order and quote. </documentation> </annotation> <complexType> <attribute name="partID" type="string" use="required"/> <attribute name="specialInstructions" type="String"/> <attribute name="quantity" type="float" use="required"/> <attribute name="price" type="decimal"/> <attribute name="picture" type="image"/> <complexType> </element> However, this would require messages whose form was: <LineItem partID="abc" specialInstructions="" quantity="3" price="12.00" picture="*"/> Such a form of message element will not be very easy to process using XSL. It will also not be extensible. For example, there are no qualifiers indication units of measure or currency, both of which need to be known prior to processing. Note that once again, Japanese characters can be used in place of the element and attribute names and values at any point in this scenario without changing the English names of the defining elements. A better model would require a structured result for the model, such as: <LineItem> <partID>abc</PartID> <quantity units="gross">3</quantity> <price currency="GBP">12.00</quantity> </LineItem> To do this you would have to convert the example given above to the form: <element name="LineItem"> <annotation> <documentation> This is an example of a minimal order line item, used as an attribute in order and quote. </documentation> <annotation> <complexType> <sequence> <attribute name="partID" type="string"/> <element name="specialInstructions" type="String" minOccurs="0"/> <element name="quantity" type="float"> <complexType> <attribute name="units" type="string"/> <!-- I've deliberately simplified the datatype of this attribute to simplify the example. In practice you would use an enumerated list of permitted units. --> </complexType> </element> <element name="price" type="decimal" minOccurs="0"> <complexType> <attribute name="currency" type="string"/> <!-- I've deliberately simplified the datatype of this attribute to simplify the example. In practice you would use an enumerated list of permitted units. --> </complexType> </element> <element name="picture" type="image" minOccurs="0"/> </sequence> </complexType> </element> Whilst this works for "simple" models, it does not work for complex ones in which other constraints need to be expressed because the BP model does not allow for the expression of a significant range of constraints of the type required by Core Components. I hope the above helps to allay your fears. As Japanese characters are permitted in XML attribute values any of these versions can be used in conjunction with models expressed in Japanese. Martin Bryan <?xml version="1.0" encoding="UTF-8"?> <!-- edited with XML Spy v3.0.7 NT (http://www.xmlspy.com) by Cheryl Casanave (Data Access Technologies) --> <!ELEMENT EbXmlProcessSpecification ((package | business-transaction | binary-collaboration | multi-party-collaboration)*)> <!ELEMENT package ((documentation | package | business-transaction | binary-collaboration | aggregate | document | document-set | unstructured | multi-party-collaboration)*)> <!ATTLIST package name CDATA #REQUIRED > <!ELEMENT aggregate (documentation?, attribute*, documentation?)> <!ATTLIST aggregate name CDATA #REQUIRED supertype CDATA #IMPLIED > <!ELEMENT document (documentation?, attribute*, documentation?)> <!ATTLIST document name CDATA #REQUIRED supertype CDATA #IMPLIED > <!ELEMENT attribute (documentation?)> <!ATTLIST attribute name CDATA #REQUIRED type CDATA #REQUIRED required (true | false) "false" multiple (true | false) "false" isLink (true | false) "false" isConfidential (true | false) "false" isTamperProof (true | false) "false" isAuthenticated (true | false) "false" isSecureEntity (true | false) "false" isSignatureEntity (true | false) "false" > <!ELEMENT unstructured (documentation?)> <!ATTLIST unstructured name CDATA #REQUIRED mimeType CDATA #IMPLIED > <!ELEMENT documentation ANY> <!ELEMENT document-set (documentation?, content*, documentation?)> <!ATTLIST document-set name CDATA #REQUIRED > <!ELEMENT content (documentation?)> <!ATTLIST content name CDATA #REQUIRED type CDATA #REQUIRED required (true | false) "false" isLink (true | false) "false" isConfidential (true | false) "false" isTamperProof (true | false) "false" isAuthenticated (true | false) "false" isSecureEntity (true | false) "false" isSignatureEntity (true | false) "false" > <!ELEMENT business-transaction (documentation?, request, response*, security?, timing*, documentation?)> <!ATTLIST business-transaction name CDATA #REQUIRED > <!ELEMENT request (documentation?)> <!ATTLIST request type CDATA #REQUIRED > <!ELEMENT response (documentation?)> <!ATTLIST response type CDATA #REQUIRED status (success | failure) "success" > <!ELEMENT security (documentation?)> <!ATTLIST security isNonReputiationReceiptRequired (true | false) #IMPLIED isIntelligibleCheckRequired (true | false) #IMPLIED isAuthorizationRequired (true | false) #IMPLIED isSecureTransportRequired (true | false) #IMPLIED isNonRepudiationRequired (true | false) #IMPLIED isNonRepudiationReceiptRequired (true | false) #IMPLIED > <!ELEMENT binary-collaboration ((documentation | business-transaction-activity | collaboration-activity | sync-state | start | transition | success | failure)*)> <!ATTLIST binary-collaboration name CDATA #REQUIRED initiator CDATA #REQUIRED responder CDATA #REQUIRED > <!ELEMENT timing (documentation?)> <!ATTLIST timing timeToAcknowledge CDATA #IMPLIED timeToAcknowledgeReceipt CDATA #IMPLIED timeToPerform CDATA #IMPLIED timeUnit (milliseconds | seconds | minutes | hours | days | weeks | months | years) "minutes" > <!ELEMENT collaboration-activity (documentation?)> <!ATTLIST collaboration-activity name CDATA #REQUIRED type CDATA #IMPLIED from CDATA #REQUIRED to CDATA #REQUIRED > <!ELEMENT sync-state (documentation?)> <!ATTLIST sync-state name CDATA #REQUIRED > <!ELEMENT business-transaction-activity (documentation?)> <!ATTLIST business-transaction-activity name CDATA #REQUIRED type CDATA #IMPLIED from CDATA #REQUIRED to CDATA #REQUIRED > <!ELEMENT transition (documentation?)> <!ATTLIST transition to CDATA #REQUIRED guard CDATA #IMPLIED condition (success | failure | technical-failure | business-failure | any) "any" from CDATA #REQUIRED > <!ELEMENT success (documentation?)> <!ATTLIST success from CDATA #REQUIRED guard CDATA #IMPLIED condition (success | failure | technical-failure | business-failure | any) "any" > <!ELEMENT failure (documentation?)> <!ATTLIST failure from CDATA #REQUIRED guard CDATA #IMPLIED condition (success | failure | technical-failure | business-failure | any) "any" > <!ELEMENT start (documentation?)> <!ATTLIST start to CDATA #REQUIRED > <!ELEMENT multi-party-collaboration (documentation?, business-partner-role+, documentation?)> <!ATTLIST multi-party-collaboration name CDATA #REQUIRED > <!ELEMENT business-partner-role (documentation?, performs+, documentation?)> <!ATTLIST business-partner-role name CDATA #REQUIRED > <!ELEMENT performs (documentation?)> <!ATTLIST performs service CDATA #REQUIRED role CDATA #REQUIRED >
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC