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.
<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>
<?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.
<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>
<?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.
<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>
<?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.
<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>
<?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>