Exercice : Créer votre formulaire de petites annonces

Pour ce mini-projet, vous allez réaliser un modèle documentaire permettant l'édition de petites annonces de matériel sportif.

Il faudra proposer une modélisation de la structure d'une fiche, des métadonnées et des ressources textuelles et/ou médias associés.

Question

En vous inspirant des fichiers starM.model et star.model, proposer un modèle de structure (ad.model) et de métadonnées (adM.model) d'annonce permettant d'obtenir la grille de saisie suivante :

Indice

Il faut modéliser :

  • la structure avec une compositionPrim (ad.model) en s'inspirant de star.model

  • les métadonnées avec une dataFormPrim (adM.model) en s'inspirant de starM.model

Solution

Modélisation de la structure (ad.model)

Vous pouvez copier-coller le contenu xml en sélectionnant tout le contenu à remplacer, directement depuis le formulaire de l'item.

CTRL+C pour copier, CTRL+V pour coller
1
<?xml version="1.0"?>
2
<sm:compositionPrim name=";Annonce" xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" xmlns:sm="http://www.utc.fr/ics/scenari/v3/modeling">
3
	<sm:identification code="ad" itemExtension="xml" targetNamespace="scenari-platform.org:pa" targetPrefix="pa"/>
4
	<sm:structure xmlId="none">
5
		<sm:meta sc:refUri="/laBonneAffaire/model/ad/adM.model" usage="required"/>
6
		<sm:part code="description" family="property" internalized="always" name=";Descriptif" usage="optional">
7
			<sm:allowedModel sc:refUri="/base/model/sTxt.model"/>
8
		</sm:part>
9
		<sm:part code="contact" family="property" internalized="always" name=";Contact" usage="required">
10
			<sm:allowedModel sc:refUri="/base/model/sTxt.model"/>
11
		</sm:part>
12
	</sm:structure>
13
	<sm:authoring>
14
		<sm:icon sc:refUri="/hellouniverse/auth/start.png"/>
15
		<sm:itemNameCreator>
16
			<sm:fixedString value=";annonce"/>
17
		</sm:itemNameCreator>	
18
	</sm:authoring>
19
</sm:compositionPrim>
20
<?xml version="1.0"?>
<sm:compositionPrim name=";Annonce" xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" xmlns:sm="http://www.utc.fr/ics/scenari/v3/modeling">
	<sm:identification code="ad" itemExtension="xml" targetNamespace="scenari-platform.org:pa" targetPrefix="pa"/>
	<sm:structure xmlId="none">
		<sm:meta sc:refUri="/laBonneAffaire/model/ad/adM.model" usage="required"/>
		<sm:part code="description" family="property" internalized="always" name=";Descriptif" usage="optional">
			<sm:allowedModel sc:refUri="/base/model/sTxt.model"/>
		</sm:part>
		<sm:part code="contact" family="property" internalized="always" name=";Contact" usage="required">
			<sm:allowedModel sc:refUri="/base/model/sTxt.model"/>
		</sm:part>
	</sm:structure>
	<sm:authoring>
		<sm:icon sc:refUri="/hellouniverse/auth/start.png"/>
		<sm:itemNameCreator>
			<sm:fixedString value=";annonce"/>
		</sm:itemNameCreator>	
	</sm:authoring>
</sm:compositionPrim>
Modélisation des métadonnées(adM.model)

Vous pouvez copier-coller le contenu xml en sélectionnant tout le contenu à remplacer, directement depuis le formulaire de l'item.

CTRL+C pour copier, CTRL+V pour coller
1
<?xml version="1.0"?>
2
<sm:dataFormPrim name=";Infos d'annonce" xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" xmlns:sm="http://www.utc.fr/ics/scenari/v3/modeling">
3
	<sm:identification code="adM" itemExtension="xml" targetNamespace="scenari-platform.org:pa" targetPrefix="pa"/>
4
	<sm:structure>
5
		<sm:field code="title" family="property/title" name=";Titre" occurrence="one">
6
			<sm:string/>
7
		</sm:field>
8
		<sm:field code="date" name=";Date" occurrence="one">
9
			<sm:date/>
10
		</sm:field>
11
		<sm:field code="mainPicture" family="property" name=";Photo principale" occurrence="one">
12
			<sm:refItem>
13
				<sm:allowedModel sc:refUri="/binaries/model/image/image.model"/>
14
			</sm:refItem>
15
		</sm:field>
16
		<sm:field code="othersPicture" family="property" name=";Photos complémentaires" occurrence="zeroOrMore">
17
			<sm:refItem>
18
				<sm:allowedModel sc:refUri="/binaries/model/image/image.model"/>
19
			</sm:refItem>
20
		</sm:field>
21
		<sm:field code="state" family="property" name=";Etat" occurrence="one">
22
			<sm:enum>
23
				<sm:option key="CN" name=";Comme neuf"/>
24
				<sm:option key="BE" name=";Bon état"/>
25
				<sm:option key="US" name=";Usagé"/>
26
			</sm:enum>
27
		</sm:field>
28
		<sm:field code="size" name=";Taille" occurrence="zeroOrOne">
29
			<sm:string/>
30
		</sm:field>
31
		<sm:field code="price" name=";Prix" occurrence="one">
32
			<sm:number allowedDecimals="2" min="0"/>
33
		</sm:field>
34
	</sm:structure>
35
	<sm:storage>
36
		<sm:fullTitleBuilder>
37
			<sm:fieldValue refCode="title"/>
38
		</sm:fullTitleBuilder>
39
	</sm:storage>
40
</sm:dataFormPrim>
41
<?xml version="1.0"?>
<sm:dataFormPrim name=";Infos d'annonce" xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" xmlns:sm="http://www.utc.fr/ics/scenari/v3/modeling">
	<sm:identification code="adM" itemExtension="xml" targetNamespace="scenari-platform.org:pa" targetPrefix="pa"/>
	<sm:structure>
		<sm:field code="title" family="property/title" name=";Titre" occurrence="one">
			<sm:string/>
		</sm:field>
		<sm:field code="date" name=";Date" occurrence="one">
			<sm:date/>
		</sm:field>
		<sm:field code="mainPicture" family="property" name=";Photo principale" occurrence="one">
			<sm:refItem>
				<sm:allowedModel sc:refUri="/binaries/model/image/image.model"/>
			</sm:refItem>
		</sm:field>
		<sm:field code="othersPicture" family="property" name=";Photos complémentaires" occurrence="zeroOrMore">
			<sm:refItem>
				<sm:allowedModel sc:refUri="/binaries/model/image/image.model"/>
			</sm:refItem>
		</sm:field>
		<sm:field code="state" family="property" name=";Etat" occurrence="one">
			<sm:enum>
				<sm:option key="CN" name=";Comme neuf"/>
				<sm:option key="BE" name=";Bon état"/>
				<sm:option key="US" name=";Usagé"/>
			</sm:enum>
		</sm:field>
		<sm:field code="size" name=";Taille" occurrence="zeroOrOne">
			<sm:string/>
		</sm:field>
		<sm:field code="price" name=";Prix" occurrence="one">
			<sm:number allowedDecimals="2" min="0"/>
		</sm:field>
	</sm:structure>
	<sm:storage>
		<sm:fullTitleBuilder>
			<sm:fieldValue refCode="title"/>
		</sm:fullTitleBuilder>
	</sm:storage>
</sm:dataFormPrim>

Question

Proposer un autre item, modèle de liste d'annonces qui va permettre de référencer un ensemble d'annonces :

Indice

Il faut modéliser :

  • la structure avec une compositionPrim (list.model) en s'inspirant de universe.model

  • les métadonnées associées (titre et date) avec une dataFormPrim (listM.model)

Solution

Modélisation de la structure (list.model)

Vous pouvez copier-coller le contenu xml en sélectionnant tout le contenu à remplacer, directement depuis le formulaire de l'item.

CTRL+C pour copier, CTRL+V pour coller
1
<?xml version="1.0"?>
2
<sm:compositionPrim name=";Liste" xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" xmlns:sm="http://www.utc.fr/ics/scenari/v3/modeling">
3
	<sm:identification code="list" itemExtension="xml" targetNamespace="scenari-platform.org:pa" targetPrefix="pa"/>
4
	<sm:structure xmlId="none">
5
		<sm:meta sc:refUri="/laBonneAffaire/model/list/listM.model" usage="required"/>
6
		<sm:set usage="required">
7
			<sm:part code="ad" family="sub-level" internalized="never" name=";Annonce">
8
				<sm:allowedModel sc:refUri="/laBonneAffaire/model/ad/ad.model"/>
9
			</sm:part>
10
		</sm:set>
11
	</sm:structure>
12
	<sm:authoring>
13
		<sm:icon sc:refUri="/hellouniverse/auth/universe.png"/>
14
		<sm:itemNameCreator>
15
			<sm:fixedString value=";liste"/>
16
		</sm:itemNameCreator>
17
	</sm:authoring>
18
</sm:compositionPrim>
<?xml version="1.0"?>
<sm:compositionPrim name=";Liste" xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" xmlns:sm="http://www.utc.fr/ics/scenari/v3/modeling">
	<sm:identification code="list" itemExtension="xml" targetNamespace="scenari-platform.org:pa" targetPrefix="pa"/>
	<sm:structure xmlId="none">
		<sm:meta sc:refUri="/laBonneAffaire/model/list/listM.model" usage="required"/>
		<sm:set usage="required">
			<sm:part code="ad" family="sub-level" internalized="never" name=";Annonce">
				<sm:allowedModel sc:refUri="/laBonneAffaire/model/ad/ad.model"/>
			</sm:part>
		</sm:set>
	</sm:structure>
	<sm:authoring>
		<sm:icon sc:refUri="/hellouniverse/auth/universe.png"/>
		<sm:itemNameCreator>
			<sm:fixedString value=";liste"/>
		</sm:itemNameCreator>
	</sm:authoring>
</sm:compositionPrim>
Modélisation des métadonnées (listM.model)

Vous pouvez copier-coller le contenu xml en sélectionnant tout le contenu à remplacer, directement depuis le formulaire de l'item.

CTRL+C pour copier, CTRL+V pour coller
1
<?xml version="1.0"?>
2
<sm:dataFormPrim name=";Infos de liste" xmlns:sm="http://www.utc.fr/ics/scenari/v3/modeling">
3
	<sm:identification code="listM" itemExtension="xml" targetNamespace="scenari-platform.org:pa" targetPrefix="pa"/>
4
	<sm:structure>
5
		<sm:field code="title" family="property" name=";Titre" occurrence="zeroOrOne">
6
			<sm:string/>
7
		</sm:field>
8
		<sm:field code="date" name=";Date" occurrence="one">
9
			<sm:date/>
10
		</sm:field>
11
	</sm:structure>
12
	<sm:storage>
13
		<sm:fullTitleBuilder>
14
			<sm:fieldValue refCode="title"/>
15
		</sm:fullTitleBuilder>
16
	</sm:storage>
17
</sm:dataFormPrim>
<?xml version="1.0"?>
<sm:dataFormPrim name=";Infos de liste" xmlns:sm="http://www.utc.fr/ics/scenari/v3/modeling">
	<sm:identification code="listM" itemExtension="xml" targetNamespace="scenari-platform.org:pa" targetPrefix="pa"/>
	<sm:structure>
		<sm:field code="title" family="property" name=";Titre" occurrence="zeroOrOne">
			<sm:string/>
		</sm:field>
		<sm:field code="date" name=";Date" occurrence="one">
			<sm:date/>
		</sm:field>
	</sm:structure>
	<sm:storage>
		<sm:fullTitleBuilder>
			<sm:fieldValue refCode="title"/>
		</sm:fullTitleBuilder>
	</sm:storage>
</sm:dataFormPrim>