Hallo iedereen,
Ik wil een xml schema opstellen voor onderstaande xml instantie. Maar ik krijg meerdere foutmeldingen waar ik weet waar de fout ligt. Kan iemand mij de juist code geven of zeggen wat ik moet toevoegen? Of misschien is er geen fout.
xml instantie:
<?xml version="1.0" encoding="utf-8" ?>
<avhbo:hbo5 xmlns:avhbo="http://www.test.be/hbo5">
<opleiding naam="Landmeter"/>
<opleiding naam="Boekhouden">
<modules>
<module code="A5" lestijden="60">Export</module>
</modules>
</opleiding>
<opleiding naam="Informatica">
<modules>
<module code="A5" lestijden="120">Programmeren 1</module>
<module code="A7" lestijden="40">IT Organisatie</module>
</modules>
<cursisten>
<cursist naam="Piet Pienter"/>
<cursist naam="Bert Bibber"/>
<cursist naam="Theo Flitser"/>
</cursisten>
<inschrijvingen>
<module code="A5">
<periode academiejaar="2015-2016" semester="2">
<cursist naam="Piet Pienter"/>
<cursist naam="Bert Bibber"/>
</periode>
</module>
<module code="A7">
<periode academiejaar="2015-2016" semester="2">
<cursist naam="Piet Pienter"/>
</periode>
<periode academiejaar="2016-2017" semester="1">
<cursist naam="Bert Bibber"/>
<cursist naam="Theo Flitser"/>
</periode>
<!--<periode academiejaar="2016-2017" semester="1"/>--><!--Contradictorisch met 16.--><!--There is a duplicate key sequence '2016-2017 1' key or unique identity constraint.-->
</module>
<!--<module code="A8"/>--><!--The key sequence 'A8' fails to refer to some key.-->
</inschrijvingen>
</opleiding>
</avhbo:hbo5>
Dit zijn de parameters die er moeten zijn. Ze zouden er allemaal moeten zijn denk ik.
01. Een hbo5 rootelement bevat 0 of meerdere <opleiding> elementen.
02. Een <opleiding> element heeft een verplicht naam attribuut, die eender welke string waarde kan bevatten.
03. Een <opleiding> element bevat optioneel een opeenvolging van <modules>, <cursisten> en <inschrijvingen> elementen.
04. Het <modules> element kan ook als enigste in deze opeenvolging voorkomen.
05. Een <modules> element kan een lijst van 0 of meerdere <module> elementen bevatten.
06. Een <module> child element van <modules> heeft een verplicht code attribuut en een optioneel lestijden attribuut. De waarde van dit <module> element kan eender welke string zijn. Het lestijden attribuut moet een positiveInteger bevatten.
07. Een code attribuut bestaat uit een karakter A, B, C, a, b of c gevolgd door een cijfer.
08. Elke code attribuut waarde moet per <opleiding> uniek zijn.
09. Een <cursisten> element bevat 0 of meerdere <cursist> elementen.
10. Een <cursist> element heeft nooit een waarde, maar heeft altijd een verplicht naam attribuut.
11. Dit naam attribuut kan eender welke string waarde zijn.
12. Een <inschrijvingen> element bevat 0 of meerdere <module> elementen.
13. Een <module> child element van <inschrijvingen> heeft een verplicht attribuut code die op dezelfde wijze is samengesteld (07).
14. De code attribuut waarde van de <module> childelementen van <inschrijvingen> moet verwijzen naar een bestaande module-code in deze opleiding.
15. Een <module> child element van <inschrijvingen> heeft een lijst van 0 of meerdere <periode> elementen.
16. Een <periode> element heeft een verplicht academiejaar attribuut, die eender welke string waarde kan bevatten, en een verplicht semester attribuut.
17. Het semester attribuut kan enkel waardes 1 of 2 bevatten.
18. Een <periode> element kan maximaal ��n keer voorkomen met een bepaalde academiejaar en semester waarde per module-inschrijving.
19. Een <periode> element kan 0 of meerdere <cursist> elementen bevatten.
20. Een <cursist> childelement van <periode> is op net dezelfde wijze samengesteld als een <cursist> childelement van <cursisten> (10).
...
Visual studio
...
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="opleiding">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="modules" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="module" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="opleiding"/>
<xs:attribute type="xs:byte" name="code"/>
<xs:attribute type="xs:integer" name="lestijden" use="optional"/>
<xs:attribute type="xs:integer" name="inschrijvingen" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="cursisten" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="cursist" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="naam"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="inschrijvingen" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="periode" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="cursist" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="naam" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:string" name="academiejaar" use="optional"/>
<xs:attribute type="xs:byte" name="semester" use="optional"/>
</xs:complexType>
</xs:element>
<unique name="codeopleiding">
<selector xpath="periode"/>
<field xpath="semester"/>
<field xpath="academiejaar"/>
</unique>
</xs:sequence>
<xs:attribute type="xs:string" name="code" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
...
groeten Tom,
Ik wil een xml schema opstellen voor onderstaande xml instantie. Maar ik krijg meerdere foutmeldingen waar ik weet waar de fout ligt. Kan iemand mij de juist code geven of zeggen wat ik moet toevoegen? Of misschien is er geen fout.
xml instantie:
<?xml version="1.0" encoding="utf-8" ?>
<avhbo:hbo5 xmlns:avhbo="http://www.test.be/hbo5">
<opleiding naam="Landmeter"/>
<opleiding naam="Boekhouden">
<modules>
<module code="A5" lestijden="60">Export</module>
</modules>
</opleiding>
<opleiding naam="Informatica">
<modules>
<module code="A5" lestijden="120">Programmeren 1</module>
<module code="A7" lestijden="40">IT Organisatie</module>
</modules>
<cursisten>
<cursist naam="Piet Pienter"/>
<cursist naam="Bert Bibber"/>
<cursist naam="Theo Flitser"/>
</cursisten>
<inschrijvingen>
<module code="A5">
<periode academiejaar="2015-2016" semester="2">
<cursist naam="Piet Pienter"/>
<cursist naam="Bert Bibber"/>
</periode>
</module>
<module code="A7">
<periode academiejaar="2015-2016" semester="2">
<cursist naam="Piet Pienter"/>
</periode>
<periode academiejaar="2016-2017" semester="1">
<cursist naam="Bert Bibber"/>
<cursist naam="Theo Flitser"/>
</periode>
<!--<periode academiejaar="2016-2017" semester="1"/>--><!--Contradictorisch met 16.--><!--There is a duplicate key sequence '2016-2017 1' key or unique identity constraint.-->
</module>
<!--<module code="A8"/>--><!--The key sequence 'A8' fails to refer to some key.-->
</inschrijvingen>
</opleiding>
</avhbo:hbo5>
Dit zijn de parameters die er moeten zijn. Ze zouden er allemaal moeten zijn denk ik.
01. Een hbo5 rootelement bevat 0 of meerdere <opleiding> elementen.
02. Een <opleiding> element heeft een verplicht naam attribuut, die eender welke string waarde kan bevatten.
03. Een <opleiding> element bevat optioneel een opeenvolging van <modules>, <cursisten> en <inschrijvingen> elementen.
04. Het <modules> element kan ook als enigste in deze opeenvolging voorkomen.
05. Een <modules> element kan een lijst van 0 of meerdere <module> elementen bevatten.
06. Een <module> child element van <modules> heeft een verplicht code attribuut en een optioneel lestijden attribuut. De waarde van dit <module> element kan eender welke string zijn. Het lestijden attribuut moet een positiveInteger bevatten.
07. Een code attribuut bestaat uit een karakter A, B, C, a, b of c gevolgd door een cijfer.
08. Elke code attribuut waarde moet per <opleiding> uniek zijn.
09. Een <cursisten> element bevat 0 of meerdere <cursist> elementen.
10. Een <cursist> element heeft nooit een waarde, maar heeft altijd een verplicht naam attribuut.
11. Dit naam attribuut kan eender welke string waarde zijn.
12. Een <inschrijvingen> element bevat 0 of meerdere <module> elementen.
13. Een <module> child element van <inschrijvingen> heeft een verplicht attribuut code die op dezelfde wijze is samengesteld (07).
14. De code attribuut waarde van de <module> childelementen van <inschrijvingen> moet verwijzen naar een bestaande module-code in deze opleiding.
15. Een <module> child element van <inschrijvingen> heeft een lijst van 0 of meerdere <periode> elementen.
16. Een <periode> element heeft een verplicht academiejaar attribuut, die eender welke string waarde kan bevatten, en een verplicht semester attribuut.
17. Het semester attribuut kan enkel waardes 1 of 2 bevatten.
18. Een <periode> element kan maximaal ��n keer voorkomen met een bepaalde academiejaar en semester waarde per module-inschrijving.
19. Een <periode> element kan 0 of meerdere <cursist> elementen bevatten.
20. Een <cursist> childelement van <periode> is op net dezelfde wijze samengesteld als een <cursist> childelement van <cursisten> (10).
...
Visual studio
...
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="opleiding">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="modules" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="module" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="opleiding"/>
<xs:attribute type="xs:byte" name="code"/>
<xs:attribute type="xs:integer" name="lestijden" use="optional"/>
<xs:attribute type="xs:integer" name="inschrijvingen" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="cursisten" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="cursist" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="naam"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="inschrijvingen" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="periode" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="cursist" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="naam" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:string" name="academiejaar" use="optional"/>
<xs:attribute type="xs:byte" name="semester" use="optional"/>
</xs:complexType>
</xs:element>
<unique name="codeopleiding">
<selector xpath="periode"/>
<field xpath="semester"/>
<field xpath="academiejaar"/>
</unique>
</xs:sequence>
<xs:attribute type="xs:string" name="code" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
...
groeten Tom,