[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
Re: [xml-dev] XML Design Guidelines for Facilitating the Creation and Processing of Compound Documents
- From: Robert Koberg <rob@koberg.com>
- To: "Costello, Roger L." <costello@mitre.org>
- Date: Fri, 6 Mar 2009 13:20:51 -0500
How are you defining compound documents? Do you want different media
types in a document or are you talking about including XML
'components' (that might include other components and so on)?
What is compound about your examples?
best,
-Rob
On Mar 6, 2009, at 1:11 PM, Costello, Roger L. wrote:
>
> Hi Folks,
>
> What guidelines would you recommend to someone who:
>
> - wants to create an XML vocabulary,
>
> - that will be combined with other XML vocabularies to create a
> compound instance document,
>
> - which will be processed by applications?
>
> In other words, what XML designs will facilitate the creation and
> processing of compound documents?
>
> Below is a list of guidelines that I have come up with. Are there
> other guidelines that you recommend?
>
>
> ----------------------------------------------
> GUIDELINES FOR FACILITATING THE
> CREATION AND PROCESSING
> OF COMPOUND DOCUMENTS
> ----------------------------------------------
>
> Namespaces are key to creating compound documents that can be
> effectively processed. Applications can partition compound documents
> along the lines identified by namespaces, thus enabling module-
> specific processing.
>
>
> 1. When designing a schema, associate the XML vocabulary it creates
> with a namespace. Thus the first guideline is to identify each XML
> vocabulary via a namespace. Here's an example of a Book XML
> vocabulary identified by the http://www.book.org namespace:
>
> <Book xmlns="http://www.book.org">
> <Title>Illusions</Title>
> <Author>Richard Bach</Author>
> <Date>1977</Date>
> <ISBN>0-440-34319-4</ISBN>
> <Publisher>Dell Publishing Co.</Publisher>
> </Book>
>
> Conversely, do not identify the XML vocabulary by embedding a unique
> identifier inside an element or attribute. Here's an example of the
> Book XML vocabulary identified using a GUID embedded inside an
> element:
>
> <Book>
> <Identifier>fc48ee30-0a6b-11de-8c30-0800200c9a66</Identifier>
> <Title>Illusions</Title>
> <Author>Richard Bach</Author>
> <Date>1977</Date>
> <ISBN>0-440-34319-4</ISBN>
> <Publisher>Dell Publishing Co.</Publisher>
> </Book>
>
>
> 2. If the schema language used to create the XML vocabulary provides
> the option of namespace-qualifying all elements or namespace-
> qualifying only global elements, choose the former. For example, the
> W3C XML Schema language allows you to specify "all elements must be
> qualified in the instance document" by setting:
>
> elementFormDefault="qualified"
>
> Conversely, it allows you to specify "only qualify globally declared
> elements in the instance document" by setting:
>
> elementFormDefault="unqualified"
>
> Don't use the latter as it destroys the value of namespaces.
> Instead, use the former as it maximizes the value of namespaces.
>
>
> 3. Use standard filename suffixes: .xsd (W3C XML Schema), .rng (ISO
> RELAX NG), .sch (ISO Schematron), .dtd (W3C DTD). Although it is
> technically accurate to, say, suffix an XML Schema file with .xml,
> it is preferable to use .xsd as the latter enables applications to
> more easily recognize an XML vocabulary's schema language.
>
>
> 4. Design your schema maximizing the use of globally declared
> elements. Each globally declared component is a potential compound
> document component. For example, with this schema both BookStore and
> Book can be used as a component in a compound document:
>
> <element name="BookStore">
> <complexType>
> <element ref="Book" maxOccurs="unbounded" />
> </complexType>
> </element>
>
> <element name="Book"> ... </element>
>
> Conversely, this schema only allows BookStore to be used as a
> component in a compound document:
>
> <element name="BookStore">
> <complexType>
> <element name="Book" maxOccurs="unbounded"> ... </element>
> </complexType>
> </element>
>
>
> What else would you add to this list?
>
> /Roger
> _______________________________________________________________________
>
> XML-DEV is a publicly archived, unmoderated list hosted by OASIS
> to support XML implementation and development. To minimize
> spam in the archives, you must subscribe before posting.
>
> [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
> Or unsubscribe: xml-dev-unsubscribe@lists.xml.org
> subscribe: xml-dev-subscribe@lists.xml.org
> List archive: http://lists.xml.org/archives/xml-dev/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
>
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]