OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help



   FW: [xml-dev] Basic XSD question

[ Lists Home | Date Index | Thread Index ]
  • To: <xml-dev@lists.xml.org>
  • Subject: FW: [xml-dev] Basic XSD question
  • From: "Robert Soesemann" <rsoesemann@sapient.com>
  • Date: Fri, 10 Dec 2004 17:51:13 +0100
  • Thread-index: AcTe1RrmDO8xNq4zTjevW8/krTyJ9wAAZZ8gAABKcwAAACT1gA==
  • Thread-topic: [xml-dev] Basic XSD question

Thanks for your reply. How would the xsd to look like if I want to have
to have a document
- that contains elements in no specific order
- where some elements must be present and always have values of a
specific type

Neighter all, sequence nor choice seems to be correct.


-----Original Message-----
From: Chiusano Joseph [mailto:chiusano_joseph@bah.com] 
Sent: Freitag, 10. Dezember 2004 17:44
To: Robert Soesemann; xml-dev@lists.xml.org
Subject: RE: [xml-dev] Basic XSD question

> -----Original Message-----
> From: Robert Soesemann [mailto:rsoesemann@sapient.com]
> Sent: Friday, December 10, 2004 11:27 AM
> To: xml-dev@lists.xml.org
> Subject: [xml-dev] Basic XSD question
> Hello,
> I have a quite basic question, but I could find a solution.
> How can I define in XMLSchema that an element should provide a text 
> value?

Use the "minLength" facet, with minLength equal to 1.
> When I validate the following XML with the XSD
> I get no error, because the empty string seems to be a valid
> string as well.

Yes, because the default for minLength is 0. The behavior you see is
therefore the expected behavior.

> XML:
> ----
> <root>
> 	<a></a> <-- if a is <a> is included it should have an xs:string
> node
> 	<a></a> <-- a second <a> is also not allowed </root>
> XSD fragment:
> -------------
> 	<xs:element name="root">
> 		<xs:complexType>
> 			<xs:choice maxOccur="1"> <-- why does
> it not invalidate the second <a>?

Because you've placed the maxOccurs facet on the choice, not on the
individual element - if you intend to restrict element <foo> to one
occurrence max, the maxOccurs facet has to be an attribute of the
<xs:element> element. You may also not want to use a choice there, since
there is only one possible value.

Hope that helps--

Kind Regards,
Joseph Chiusano
Booz Allen Hamilton
Strategy and Technology Consultants to the World
> 				<xs:element name="foo" type="xs:string"
> minOccurs="1" />
> 			</xs:choice>
> 		</xs:complexType>
> 	</xs:element>
> Thanks for replies,
> R.
> -----------------------------------------------------------------
> The xml-dev list is sponsored by XML.org <http://www.xml.org>, an 
> initiative of OASIS <http://www.oasis-open.org>
> The list archives are at http://lists.xml.org/archives/xml-dev/
> To subscribe or unsubscribe from this list use the subscription
> manager: <http://www.oasis-open.org/mlmanage/index.php>


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS