And Now for the XML in CatXML


Before looking at specifics of the underlying XML techniques, we need to examine some basics of organizing and structuring metadata. Too often we see metadata provided as an amorphous blob of elements and attributes with little regard to using parent/child structures to create groups of related elements ”and thus easily accessible information blocks. The ebXML specifications refer to these accessible information blocks as core components ” building blocks of business information that can be easily and consistently snapped together to create a coherent business information exchange (see Figure 9.3).

Figure 9.3. CatXML information hierarchy.

graphics/09fig03.gif

Once a well-defined group structure is established, a higher level of organization can then be created by separating the XML itself into physical components that are each included in a controlling parent template. This template approach allows trading partners to be flexible about the components they select, and the versions and sub-definitions they apply to the master templates. (All of these techniques can be found in the CatXML syntax examples. The value of good semantic models cannot be overemphasized here. Well-implemented XML should provide the foundation and stepping stones to emerging business applications.)

Next , CatXML seeks to address the problems of naming and semantics. Ultimately, ebXML registry systems based on reference unique identifiers (UIDs) will be the implementation of choice as they become available later in 2001. The NIST prototype is a precursor of these industry-enabling commercial registries. The UID linkage references provide neutral data identifiers called Bizcodes that allow collaborating businesses to synchronize their business semantics by labeling each piece of information exchanged. Therefore, the context and meaning of data sent by one trading partner can be readily matched to similar uses by the receiving business systems.

Similarly, the transport of CatXML messages uses an access/content input/response output model supported by the ebXML messaging services specifications and the SOAP messaging protocols. Figure 9.4 shows the actual structure of CatXML payloads delivered by ebXML message envelopes.

Figure 9.4. CatXML interchange hierarchy.

graphics/09fig04.gif

The ebXML work has developed similar transport formats for registry interchanges, and these SOAP-based transactions are used in registry prototypes to show how metadata attached to catalog information can be queried, retrieved, and used by a web browser. Rounding out this section, Listing 9.1 provides a sample and more details of the actual CatXML syntax. Examples of the CatXML DTD and XML documents can be downloaded from the CatXML web site, along with documentation.

Listing 9.1 CatXML Controlling a Parent DTD Template Fragment
 <! CatXML base DTD.                                                > <! Version 0.21 August 2000                                        > <! Conforms to ebXML core component specifications                 > <!                                                                 > <! To provide maximum flexibility in deploying                     > <! customized versions, the following business                     > <! functional information blocks are included as                   > <! five related DTD fragments. This allows just pieces             > <! of the overall structure to be redefined selectively            > <!                                                                 > <! Address information                                             > <! Contact information                                             > <! Shipping information                                            > <! USGov product information                                       > <! Warehouse stock information                                     > <!                                                                 ************************************************************************************* * Main definition of CatXML content schema structure Version 1.1                    * *                                                                                   * ************************************************************************************* > <!ELEMENT Input (Schema, Content)> <!ELEMENT Schema (#PCDATA)> <!ELEMENT Content (Vendor?, Supplier?, StockInfo?, ShipInfo?, Item)> <! Establish link to UID reference location > <!ATTLIST Content     UIDref CDATA #FIXED "http://www.catxml.org/UID/datatypes.xml" > <!ELEMENT Vendor (CompanyID, Name?, Address?, Contact?)> <!ATTLIST Vendor     vendorID ID #IMPLIED > <!ELEMENT CompanyID (#PCDATA)> <!ATTLIST CompanyID     context (Vendor  Supplier  Manufacturer  Other) "Vendor"     idType (DUNS  Local  USDoD  EIN  TaxID  Other) "DUNS" > <!ELEMENT Name (#PCDATA)> <!ENTITY % addressInfo SYSTEM "CatXML-address-V1.dtd"> <!ENTITY % contactInfo SYSTEM "CatXML-contact-V1.dtd"> <!ENTITY % shippingInfo SYSTEM "CatXML-shipping-V1.dtd"> <!ENTITY % usgovDoDInfo SYSTEM "CatXML-usgovDoD-V1.dtd"> <!ENTITY % stockInfo SYSTEM "CatXML-warehouse-V1.dtd"> %addressInfo; %contactInfo; %shippingInfo; %usgovDoDInfo; %stockInfo; <!ELEMENT Supplier (CompanyID, Name?, Address?, Contact?)> <!ATTLIST Supplier     supplierID ID #IMPLIED > <!ELEMENT Item (supplierItemNo, (partName  prodName), barcode?, ((unitPrice, graphics/ccc.gif pricingType?)  priceRecord+), (MFGPartNo  MFGProdNo)?, MFGName?, itemCategory?, graphics/ccc.gif DoDcontent?, productOptions?, ordering, description?, productImage?, punchoutURL?, graphics/ccc.gif CatalogID?, remarks?, sampleInfo?)> <!ATTLIST Item     ItemID ID #IMPLIED     UID CDATA #FIXED "CAT10501" > <!ELEMENT supplierItemNo (#PCDATA)> <!ATTLIST supplierItemNo     UID CDATA #FIXED "CAT10510" > <!ELEMENT barcode (#PCDATA)> <!ATTLIST barcode     codeType (UPC  EAN) "UPC"     UID CDATA #FIXED "CAT10502" > <!ELEMENT unitPrice (#PCDATA) > <!ATTLIST unitPrice     currencyID %isoCurrencyCode; "1001"     pricingType (retail  wholesale  export  any) "any"     alternateAmount %number; #IMPLIED     alternateCurrency %isoCurrencyCode; #IMPLIED     alternateType (retail  wholesale  export  any) "any"     expiryDate %datetime; #IMPLIED     UID CDATA #FIXED "CAT10503"> 

The next section completes this technical review by considering broader deployment needs.



ebXML. The New Global Standard for Doing Business Over the Internet
ebXML: The New Global Standard for Doing Business on the Internet
ISBN: 0735711178
EAN: 2147483647
Year: 2000
Pages: 100

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net