Bonjour,
je voudrais transformer mon XML en XSD, j'ai encore pas mal d'erreur m'indique un validateur.

Code XML:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
 
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="videotheque.xsl"?>
<!DOCTYPE videotheque SYSTEM "videotheque.dtd">
<videotheque xmlns="http://myrecipes.org/"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="videotheque.xsd">
 
  <header> Vidéothèque </header>
 
  <pays>
    <p_id type="string"> US </p_id>
	<p_nom> ETATS-UNIS </p_nom>
	<p_langue> ANGLAIS </p_langue>
  </pays>
 
  <internaute>
    <i_nom> Smith </i_nom>
	<i_prenom> Pierre </i_prenom>
	<i_date_nais> 12/01/1972 </i_date_nais>
	<i_id> Smith-at-gmail.com </i_id>
	<i_date_ab> 31/07/2009 </i_date_ab>
	<i_nb_bonus> 5 </i_nb_bonus>
  </internaute>
 
  <artiste>
    <a_id type="string"> A1 </a_id>
	<a_nom> Depardieu </a_nom>
	<a_prenom> Gerard </a_prenom>
	<a_date_nais> 27/12/1948 </a_date_nais>
	<a_p_id type="string"> FR </a_p_id>
  </artiste>
 
  <realisateur>
    <r_niveau type="string"> N9 </r_niveau>
	<r_a_id type="string"> A3 </r_a_id>
	<r_date_hab> 12/01/1972 </r_date_hab>
  </realisateur>
 
  <film>
    <f_p_id type="string"> FR </f_p_id>
	<f_id type="string"> F1 </f_id>
	<f_r_id type="string"> A3 </f_r_id>
	<f_genre type="string"> P </f_genre>
	<f_titre> OISEAU BLEU </f_titre>
	<f_resume> un oiseau bleu est né </f_resume>
  </film>
 
  <role>
    <ro_f_id type="string"> F1 </ro_f_id>
	<ro_a_id type="string"> A1 </ro_a_id>
	<ro_nom> Pierre </ro_nom>
  </role>
 
  <telechargement>
    <t_id type="string"> T1 </t_id>
	<t_f_id type="string"> F1 </t_f_id>
	<t_i_id> Smith-at-gmail.com </t_i_id>
	<t_date> 20/09/2009 </t_date>
  </telechargement>
 
</videotheque>
Code XSD:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 
<?xml version="1.0" encoding="UTF-8"?>
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="videotheque">
      <xs:complexType>
        <xs:sequence>
 
          <xs:element name="header" type="xs:string" use="required" />
 
          <xs:element name="pays" minOccurs="1" maxOccurs="unbounded">
		    <xs:element name="p_id" type="xs:string" use="required" />
			<xs:element name="p_nom" type="xs:string" />
			<xs:element name="p_langue" type="xs:string" maxOccurs="2" />
		  </xs:element>
 
		  <xs:element name="internaute" minOccurs="0" maxOccurs="unbounded">
            <xs:complexType>
			  <xs:choice>
			    <xs:element name="i_nom" />
			    <xs:element name="i_prenom" maxOccurs="2" />
			  </xs:choice>
			</xs:complexType>
 
		    <xs:complexType>
		      <xs:choice>
			    <xs:element name="i_prenom" maxOccurs="2" />
			    <xs:element name="i_nom" />
			  </xs:choice>
			</xs:complexType>
 
			<xs:element name="i_date_nais" type="xs:date" />
			<xs:element name="i_id" type="xs:string" use="required" />
			<xs:element name="i_date_ab" type="xs:date" />
			<xs:element name="i_nb_bonus" type="xs:integer" />
		  </xs:element>
 
		  <xs:element name="artiste" minOccurs="0" maxOccurs="unbounded">
		    <xs:element name="a_id" type="xs:string" use="required" />
			<xs:element name="a_nom" type="xs:string" />
			<xs:element name="a_prenom" type="xs:string" />
			<xs:element name="a_date_nais" type="xs:date" />
			<xs:element name="a_p_id" type="xs:string" use="required" />
		  </xs:element>
 
		  <xs:element name="realisateur" minOccurs="0" maxOccurs="unbounded">
		    <xs:element name="r_niveau" type="xs:string" />
			<xs:element name="r_a_id" type="xs:string" use="required" />
			<xs:element name="r_date_hab" type="xs:date" />
		  </xs:element>
 
		  <xs:element name="film" minOccurs="1" maxOccurs="unbounded">
		    <xs:element name="f_p_id" type="xs:string" use="required" />
			<xs:element name="f_id" type="xs:string" use="required" />
			<xs:element name="f_r_id" type="xs:string" use="required" />
			<xs:element name="f_genre" type="xs:string" />
			<xs:element name="f_titre" type="xs:string" />
			<xs:element name="f_resume" type="xs:string" />
		  </xs:element>
 
		  <xs:element name="role" minOccurs="1" maxOccurs="unbounded">
		    <xs:element name="ro_f_id" type="xs:string" use="required" />
			<xs:element name="ro_a_id" type="xs:string" use="required" />
			<xs:element name="ro_nom" type="xs:string" />
		  </xs:element>
 
		  <xs:element name="telechargement" minOccurs="0" maxOccurs="unbounded">
		    <xs:element name="t_id" type="xs:string" use="required" />
			<xs:element name="t_f_id" type="xs:string" use="required" />
			<xs:element name="t_i_id" type="xs:string" use="required" />
			<xs:element name="t_date" type="xs:date" />
		  </xs:element>
 
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:schema>
Code DTD:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 
<!ENTITY videotheque "videotheque">
<!ELEMENT videotheque (header, pays+, internaute*, artiste*, realisateur*, film+, role+, telechargement*)>
<!ELEMENT pays (p_id, p_nom, p_langue+)>
<!ELEMENT internaute (i_id, i_nom, i_prenom, i_date_nais, i_date_ab, i_nb_bonus)>
<!ELEMENT artiste (a_id, a_nom, a_prenom, a_date_nais, a_p_id)>
<!ELEMENT realisateur (r_a_id, r_date_hab, r_niveau)>
<!ELEMENT film (f_id, f_titre, f_genre, f_resume, f_r_id, f_p_id)>
<!ELEMENT role (ro_f_id, ro_a_id, ro_nom)>
<!ELEMENT telechargement (t_id, t_date, t_f_id, t_i_id)>
<!ELEMENT header (#PCDATA)>
<!ELEMENT p_id (#PCDATA)>
<!ELEMENT p_nom (#PCDATA)>
<!ELEMENT p_langue (#PCDATA)>
<!ELEMENT i_id (#PCDATA)>
<!ELEMENT i_nom (#PCDATA)>
<!ELEMENT i_prenom (#PCDATA)>
<!ELEMENT i_date_nais (#PCDATA)>
<!ELEMENT i_date_ab (#PCDATA)>
<!ELEMENT i_nb_bonus (#PCDATA)>
<!ELEMENT a_id (#PCDATA)>
<!ELEMENT a_nom (#PCDATA)>
<!ELEMENT a_prenom (#PCDATA)>
<!ELEMENT a_date_nais (#PCDATA)>
<!ELEMENT a_p_id (#PCDATA)>
<!ELEMENT r_a_id (#PCDATA)>
<!ELEMENT r_date_hab (#PCDATA)>
<!ELEMENT r_niveau (#PCDATA)>
<!ELEMENT f_id (#PCDATA)>
<!ELEMENT f_titre (#PCDATA)>
<!ELEMENT f_genre (#PCDATA)>
<!ELEMENT f_resume (#PCDATA)>
<!ELEMENT f_r_id (#PCDATA)>
<!ELEMENT f_p_id (#PCDATA)>
<!ELEMENT ro_f_id (#PCDATA)>
<!ELEMENT ro_a_id (#PCDATA)>
<!ELEMENT ro_nom (#PCDATA)>
<!ELEMENT t_id (#PCDATA)>
<!ELEMENT t_date (#PCDATA)>
<!ELEMENT t_f_id (#PCDATA)>
<!ELEMENT t_i_id (#PCDATA)>
<!ATTLIST p_id type CDATA #REQUIRED>
<!ATTLIST a_id type CDATA #REQUIRED>
<!ATTLIST a_p_id type CDATA #REQUIRED>
<!ATTLIST r_a_id type CDATA #REQUIRED>
<!ATTLIST r_niveau type CDATA #REQUIRED>
<!ATTLIST f_id type CDATA #REQUIRED>
<!ATTLIST f_r_id type CDATA #REQUIRED>
<!ATTLIST f_p_id type CDATA #REQUIRED>
<!ATTLIST p_id type CDATA #REQUIRED>
<!ATTLIST f_genre type CDATA #REQUIRED>
<!ATTLIST ro_f_id type CDATA #REQUIRED>
<!ATTLIST ro_a_id type CDATA #REQUIRED>
<!ATTLIST t_id type CDATA #REQUIRED>
<!ATTLIST t_f_id type CDATA #REQUIRED>