<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>c-dev &#187; xsd</title>
	<atom:link href="http://www.c-dev.ch/blog/tag/xsd/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.c-dev.ch/blog</link>
	<description>fresh looking</description>
	<lastBuildDate>Sun, 05 Sep 2010 11:31:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>xs:element</title>
		<link>http://www.c-dev.ch/blog/2009/06/24/xselement/</link>
		<comments>http://www.c-dev.ch/blog/2009/06/24/xselement/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 10:11:47 +0000</pubDate>
		<dc:creator>fresh</dc:creator>
				<category><![CDATA[XML & XSL]]></category>
		<category><![CDATA[xsd]]></category>

		<guid isPermaLink="false">http://www.c-dev.ch/blog/?p=201</guid>
		<description><![CDATA[Ein Element kann nur Text enthalten. Es kann keine weiteren Elemente oder Attribute beinhalten. Wobei &#8220;Text&#8221; missverständlich sein kann. Denn der Inhalt kann einer von den xsd Typen (boolean, string, date, etc.) sein, oder ein benutzerdefinierter Typ, den man selbst erstellt. &#60;xs:element name=&#8221;xxx&#8221; type=&#8221;yyy&#8221;/&#62; Komplexes Element Es gibt vier Möglichkeiten: leere elemente &#60;result state=&#8221;true&#8221; /&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Ein Element kann nur Text enthalten. Es kann keine weiteren Elemente oder Attribute beinhalten.</p>
<p>Wobei &#8220;Text&#8221; missverständlich sein kann. Denn der Inhalt kann einer von den xsd Typen (boolean, string, date, etc.) sein, oder ein benutzerdefinierter Typ, den man selbst erstellt.</p>
<blockquote><p>&lt;xs:element name=&#8221;xxx&#8221; type=&#8221;yyy&#8221;/&gt;</p></blockquote>
<p><strong>Komplexes Element</strong></p>
<p>Es gibt vier Möglichkeiten:</p>
<ul>
<li>leere elemente<br />
&lt;result state=&#8221;true&#8221; /&gt;</li>
<li>solche die nur andere elemente beinhalten<br />
&lt;result&gt;<br />
&lt;state&gt;true&lt;/state&gt;<br />
&lt;/result&gt;</li>
<li>solche die nur text beinhalten<br />
&lt;result state=&#8221;true&#8221;&gt;no error occurred&lt;/result&gt;</li>
<li>elemente, die andere elemente und text beinhalten<br />
&lt;result state=&#8221;true&#8221;&gt;no &lt;green&gt;error&lt;/green&gt; occurred&lt;/result&gt;</li>
</ul>
<p><strong>Definition eines komplexen Elementes</strong></p>
<blockquote><p>&lt;employee&gt;<br />
&lt;firstname&gt;John&lt;/firstname&gt;<br />
&lt;lastname&gt;Smith&lt;/lastname&gt;<br />
&lt;/employee&gt;</p></blockquote>
<p>XSD</p>
<blockquote><p>&lt;xs:element name=&#8221;employee&#8221;&gt;<br />
&lt;xs:complexType&gt;<br />
&lt;xs:sequence&gt;<br />
&lt;xs:element name=&#8221;firstname&#8221; type=&#8221;xs:string&#8221;/&gt;<br />
&lt;xs:element name=&#8221;lastname&#8221; type=&#8221;xs:string&#8221;/&gt;<br />
&lt;/xs:sequence&gt;<br />
&lt;/xs:complexType&gt;<br />
&lt;/xs:element&gt;</p></blockquote>
<p>Oder mehr genereller, damit beispielsweise ein anderes Element wie &#8220;Kunde&#8221; dieselbe Definition verwenden kann:</p>
<blockquote><p>&lt;xs:element name=&#8221;employee&#8221; type=&#8221;personinfo&#8221;/&gt;</p>
<p>&lt;xs:complexType name=&#8221;personinfo&#8221;&gt;<br />
&lt;xs:sequence&gt;<br />
&lt;xs:element name=&#8221;firstname&#8221; type=&#8221;xs:string&#8221;/&gt;<br />
&lt;xs:element name=&#8221;lastname&#8221; type=&#8221;xs:string&#8221;/&gt;<br />
&lt;/xs:sequence&gt;<br />
&lt;/xs:complexType&gt;</p></blockquote>
<p>Ohne Angaben von minOccurs and maxOccurs muss das Element exakt einmal vorkommen. (entspricht also minOccurs=1 und maxOccurs=1).</p>
<p><span style="color: #ff6600;"><strong>ACHTUNG! </strong>Attribute Definitionen müssen immer am Ende (z.B. nach sequence) erfolgen!</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.c-dev.ch/blog/2009/06/24/xselement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
