[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Attributes v Elements
- From: Paul Cody Johnston <pcj@inxar.org>
- To: "Conder, Tom D (N-MAXIM Group)" <tom.d.conder@lmco.com>
- Date: Wed, 16 May 2001 11:10:09 -0700
* Conder, Tom D (N-MAXIM Group) (tom.d.conder@lmco.com) wrote:
> Is there a good reference on the Web offering advice about various design
> decisions I have to make while developing a DTD (or XMLSchema)?
>
> For example, it is not immediately obvious when to use attributes and when
> to make an element a complex type.
>
> Suppose we want to make an XML file whose structure supports currency. Which
> is better?
>
> 1) a simple type with an attribute
>
> <currency type="USDollar">
> 10
> </currency>
>
> 2) a complex type with no attribute
>
> <currency>
> <type>USDollar</type>
> <value>10</value>
> </currency>
>
> 3) a simple type with two attributes
>
> <currency type="USDollar" value="10"/>
>
> Is there a simple rule of thumb to apply to the use of attributes?
>
Most times there is no definitive answer, it comes down to your
preference. I would refer to the FAQ that Robin mentioned.
==== Offtopic ==================================================
This is why in the language I am designing (RSL), there is no
differentiation made between elements and attributes -- the
fundamental abstraction is exactly the same (I call this
attribute/element isomorphism). In this example, there is a
"currency" node with two nested nodes, "type" having type string and
"value" having type string (even though it looks like an int).
Therefore, in RSL you can write any of these, all of which are
interpreted by the parser equivalently (note that syntax is not XML):
<|currency type="USDollar" value="10">
<\currency type="USDollar">
<|string`value="10">
</currency>
<\currency value="10">
<|string`type="USDollar">
</currency>
<\currency>
<|string`type="USDollar">
<|string`value="10">
</currency>
Paul
> Tom Conder - Contractor, Lockheed Martin Mission Systems
> 1035 Eastgate Drive
> O'Fallon IL 62269
> (618) 628-2051
>
> ------------------------------------------------------------------
> The xml-dev list is sponsored by XML.org, an initiative of OASIS
> <http://www.oasis-open.org>
>
> The list archives are at http://lists.xml.org/archives/xml-dev/
>
> To unsubscribe from this elist send a message with the single word
> "unsubscribe" in the body to: xml-dev-request@lists.xml.org
+---------------+---------------+------------------+
| Paul Johnston | pcj@inxar.org | http://inxar.org |
+---------------+---------------+------------------+