Bonjour à tous

Je débute dans le langage XML, j'ai fais plusieurs tuto sur le net avant de me lancer.

Je souhaite créer une application devis, qui fait la sommes de plusieurs articles. ces articles sont regroupés par fonction.

Devis N°1
Fonction N°1
Resistance 10K prix 1€ Qté:10
Condensateur 100nf 5€ Qté:5
Fonction N°2
Relais K1 5€ Qté:2
Transistor T1 2€ Qté:2
Fonciont N° .....
....................
....................

Mon appli pourra venir lire ce fichier est faire tout les calculs qu'il me faut (prix par fonction, prix total ....)

avec la possibilité de créer, rajouter, modifier, supprimer des fonctions ou des articles.
Une fonction possède un nom et une description
Un devis : N°, désignation, Coef, miniCmd

Les caractéristiques suivantes doivent bien etre mit en attributs dans les fonctions? Nom ; Description
Les caractéristiques suivantes doivent bien etre mit en attributs dans le devis ? N°, désignation, Coef, miniCmd

Pour le prix et la quantité des articles c'est des attributs de l'article ou des éléments.

Je fait une confusion entre l'attribut et les éléments. comment choisir si c'est l'un ou l'autre qu'il faut ?


Merci d'avance pour vos remarques et votre aide.

voici mon document 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
<!ELEMENT devis (fonction*)>
 
<!ATTLIST devis NAffaire CDATA #REQUIRED>
<!ATTLIST devis Designation CDATA #REQUIRED>
<!ATTLIST devis QteAn CDATA #REQUIRED>
<!ATTLIST devis QteLct CDATA #REQUIRED>
<!ATTLIST devis CoefSecu CDATA #REQUIRED>
<!ATTLIST devis Prixremis CDATA #REQUIRED>
<!ATTLIST devis dateC CDATA #REQUIRED>
<!ATTLIST devis dateA CDATA #REQUIRED>
<!ATTLIST devis datem CDATA #REQUIRED>
<!ATTLIST devis dateE CDATA #REQUIRED>
<!ATTLIST devis etat CDATA #REQUIRED>
 
 
<!ELEMENT fonction (article*)>
 
<!ATTLIST fonction nom CDATA #REQUIRED>
<!ATTLIST fonction description CDATA #REQUIRED>
 
 
<!ELEMENT article (Code,Designation,type,famille,fourniture,fournisseur,prix,caractst,conso,minicmd)>
	<!ELEMENT Code (#PCDATA)>
	<!ELEMENT Designation (#PCDATA)>
	<!ELEMENT type (#PCDATA)>
	<!ELEMENT famille (#PCDATA)>
	<!ELEMENT fourniture (#PCDATA)>
	<!ELEMENT fournisseur (#PCDATA)>
	<!ELEMENT prix (#PCDATA)>
	<!ELEMENT caractst (#PCDATA)>
	<!ELEMENT conso (#PCDATA)>
	<!ELEMENT minicmd (#PCDATA)>
Document 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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
 
<!DOCTYPE devis SYSTEM "devis.dtd">
 
 <devis NAffaire="123" Designation="ddd" QteAn="100" QteLct="10" dateC="01/01/2016" dateE="05/01/2016" datem="15/01/2016" dateA="15/01/2016" CoefSecu="1" Prixremis="10" etat="2">
 
	<fonction nom="entrée N°1" description="permet une  entrée">
 
		<article>
			<Code>2CRM</Code>
			<Designation>Resistance</Designation>
			<type>MA</type>
			<famille>COM</famille>
			<fourniture>res125</fourniture>
			<fournisseur>ARROW</fournisseur>
			<prix>0.123</prix>
			<caractst>12/12/201/22</caractst>
			<conso>100</conso>
			<minicmd>1000</minicmd>
		</article>
 
		<article>
			<Code>2CT</Code>
			<Designation>Transfo</Designation>
			<type>MA</type>
			<famille>TRA</famille>
			<fourniture>2T036AT0</fourniture>
			<fournisseur>TAE</fournisseur>
			<prix>5.25</prix>
			<caractst>12/12/201/22</caractst>
			<conso>2500</conso>
			<minicmd>1000</minicmd>
		</article>	
 
	</fonction>
 
	<fonction nom="entrée N°2" description="permet une  deuxieme entrée">
 
		<article>
			<Code>2R</Code>
			<Designation>Relais K1</Designation>
			<type>MA</type>
			<famille>REL</famille>
			<fourniture>RP410310</fourniture>
			<fournisseur>TYCO</fournisseur>
			<prix>2.35</prix>
			<caractst>12/12/201/22</caractst>
			<conso>1000</conso>
			<minicmd>2500</minicmd>
		</article>
 
		<article>
			<Code>2CT</Code>
			<Designation>Transfo</Designation>
			<type>MA</type>
			<famille>TRA</famille>
			<fourniture>2T036AT0</fourniture>
			<fournisseur>TAE</fournisseur>
			<prix>5.25</prix>
			<caractst>12/12/201/22</caractst>
			<conso>2500</conso>
			<minicmd>1000</minicmd>
		</article>	
 
		<article>
			<Code>2CT</Code>
			<Designation>Transfo</Designation>
			<type>MA</type>
			<famille>TRA</famille>
			<fourniture>2T036AT0</fourniture>
			<fournisseur>TAE</fournisseur>
			<prix>5.25</prix>
			<caractst>12/12/201/22</caractst>
			<conso>2500</conso>
			<minicmd>1000</minicmd>
		</article>	
 
	</fonction>
 
 </devis>