|
We can also combine the parent differentiation online-sales/offline-sales with a child differentiation such as household-item/business-item, obtaining (#PCDATA declarations omitted):
<!ELEMENT sales (company, item, quantity) >
<!ELEMENT sales (company, household-item, quantity) >
<!ELEMENT sales (company, business-item, quantity) >
<!ELEMENT online-sales (company, item, quantity) >
<!ELEMENT online-sales (company, household-item, quantity) >
<!ELEMENT online-sales (company, business-item, quantity) >
<!ELEMENT offline-sales (company, item, quantity) >
<!ELEMENT offline-sales (company, household-item, quantity) >
<!ELEMENT offline-sales (company, business-item, quantity) > |
As in the child-differentiation example, this can be regarded as the result of "multiplying out" choices from a shorter DTD:
<!ELEMENT sales (company,
(item | household-item | business-item),
quantity) >
<!ELEMENT online-sales (company,
(item | household-item | business-item),
quantity) >
<!ELEMENT offline-sales (company,
(item | household-item | business-item),
quantity) > |
As in the parent- and child-differentiation examples, it can also be regarded as the XML result of "multiplying out" SUBSUMES from a more semantic NEXML DTD:
<!ELEMENT sales (company, item, quantity) >
<!SUBSUMES sales online-sales >
<!SUBSUMES sales offline-sales >
<!SUBSUMES item household-item >
<!SUBSUMES item business-item > |
|