[Home] [By Thread] [By Date] [Recent Entries]
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@l... > subscribe: xml-dev-subscribe@l... > 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] |

Cart



