DTD FAQ 1. Multi-language function Q. PIP 2A9 uses the following free text attributes: - xml:lang - xml:space These are standard attributes defined in the W3C XML 1.0 specification (section 2.10 and 2.12). But 2A10 uses the attributes GlobalLanguageCode and Spacing. Is there a reason for this difference? A. PIP 2A9 was developed before RosettaNet wrote its PIP style guide. The style guide requires all words to be spelled out and also has specific capitalization rules. These conflict with the W3C convention but are required for all current PIPs. Furthermore, GlobalLanguageCode is defined in the business dictionary and is used by other PIPs. So we followed the RosettaNet rules. The computer system will not care which rule is used as long as the rule is used consistently. Still the whole question of the best way to provide support for multiple languages is being studied by RosettaNet's Engineering Department. Until they come to a decision on this point, we should follow current RosettaNet rules. 2. Product identification Q. The product code for a given product is not a required tag in the PIP. But if the product code is not provided, the information cannot be added, deleted, or changed because the computer will not know which set of information to access unless the product code is used as the key. Why isn't the product code required every time? A. This PIP points to dictionary elements but is designed so that it is not limited to a certain version/level of the dictionary. Product code is a "property" of a product and thus is defined in the dictionary. That definition has a version/level as part of its unique identifier. So the PIP DTD cannot directly cite that identifier. Instead, the operational rules for the use of this PIP (described in the RosettaNet Implementation Guide) clearly say that the product information provider must specify the product code whenever product properties are being added, modified, or deleted in the database. RosettaNet calls such operational rules "contraints." You will also find these constraints in the Message Guidelines. 3. Changing product identifiers Q. The product code for a product may change over the lifetime of the product, especially when it moves from the development stage to mass production. How can we change the product code? A. That is a good question. What you are expressing is a conflict between the "identifying" property of a product and its "official name." A product "id" should not change over the lifetime of a product or else it does not truly "identify" the product in a unique way. If you want a non-changing id and a changeable name (product code), both of these would be properties of the product and the ideal solution is to define both in the dictionary as separate properties. A more pragmatic solution would be to email your partner that the product name has changed, send a PIP that defines all the properties for the enamed product, including its new product code, and then sending a delete request for the old product information. Both of these latter two operations can be done in the same PIP. 4. Distinguishing between elements and attributes Q. The Message Guidelines (MG) don't show whether a data item is an "element" or an "attribute." We have to read the MG to learn the meaning of items and their most restricted cardinality and the DTD to find out whether an item is an element or an attribute and its actual sequence in the message. Isn't there some easier way to define the PIPs? A. The current RosettaNet methodology requires this information split. It will be resolved when the PIPs are specified in an XML schema rather than a DTD. In the meantime, read the 2A10 Implementation Guideline because it provides all the information in a single file. 5. RNTD or ECTD Q. The file name for the RNTD is rntd.dtd but the actual reference to the RNTD dtd in the PIP says that the dtd is the ECTD dtd. PIP 2A9 still points to the ectd dtd. What's going on here? A. The RNTD dtd file name was changed from ectd to rntd last year (because the dictionary is now the RNTD, not the ECTD). The ECTD dtd was originally developed by Si2 and when RosettaNet bought the IP for the dtd from Si2, we tried to remove references to Si2 but we missed some references. If the RNTD dtd is revised in the future, as it probably will, then we will remove this inconsistency and fix up the PIPs at the same time. 6. Versioning Q. The 2A10 DTD specifies a Version tag for ProductInformation but this item duplicates other existing version control items. For Product characteristics, the RNTD currently defines XJE001 Data Version Number and XJE002 Data Revision Number, as well as RNP290 Product Version Number and RNP291 Product Revision Number. For PIOs there is another separate Version tag. Duplication of the RNTD property and 2A10 message item will cause confusion to systems. A. This PIP acknowledges four different kinds of version: 1) PIP information version 2) Product information version/revision number (from RNTD) 3) Product version/revision number (from RNTD) 4) PIO version You say that #1 and #2 are identical and that therefore #1 should be deleted. But they are not identical. #1 is the version of the total information package being provided. The information provided may change without a change in the product version number or the product version number may have changed twice or more before a message is delivered describing the change, so it is possible to have an information package version 3 with a product information version 6. This PIP relates to a promise to provide information and this information package version number provides an ability to track the process of fulfilling that promise. The version number of products is a completely different thing and not related to the promise. Deleting this tag will make tracking very difficult. So it cannot be deleted.