Examen SOA 2022
Examen SOA 2022
Examen SOA 2022
Semestre : 1 2
Page 1 sur 7
On cherche à terminer le XSD ci-dessus, quelle proposition contient les bonnes réponses aux
valeurs manquantes :
a. [1] :simpleType | [2] : complexType | [3] : type | [4] : pattern
b. [1] :complexContent | [2] : simpleContent | [3] : type | [4] : pattern
c. [1] :complexContent | [2] : simpleContent | [3] : base | [4] : text
d. [1] :complexType | [2] : simpleType | [3] : base | [4] : pattern
--------------
public class Article{
@XmlAttribute
public String ref;
@XmlTransient
public float prix;
}
a.
<xs:complexType>
<xs:sequence>
<xs:attribute name = "ref" type = "xs:string" />
</xs:sequence>
</xs:complexType>
b.
<xs:complexType>
<xs:sequence>
<xs:element name="prix" type="xs:float" />
</xs:sequence>
<xs:attribute name = "ref" type = "xs:string" />
</xs:complexType>
c.
<xs:simpleType>
<xs:attribute name = "ref" type = "xs: string" />
</xs:simpleType>
Page 2 sur 7
d.
<xs:complexType>
<xs:attribute name = "ref" type = "xs:string" />
</xs:complexType>
Voiture Location
<<Enumeration>>
TypeVoiture - numImm : string - id : int
- Electrique - marque : string 1 * - dateDebut : string
- modele : string - dateFin : string
- Essence - puissance : int - prix: float
- Diesel - type : TypeVoiture
On vise à développer en premier lieu un service web étendu pour gérer les voitures et les
différentes opérations de location.
Les attributs numImm et id représentent respectivement les clés primaires des entités Voiture
et Location. TypeVoiture est une énumération avec trois choix de valeurs possibles.
Ci-dessous les messages SOAP utilisées pour invoquer quelques opérations exposées par le
SW proposé.
Page 3 sur 7
• Ajout d’une nouvelle voiture :
• Détails locations :
Page 4 sur 7
• Voitures louées entre date début et date fin spécifiées :
Terminez les parties manquantes du code source : des signatures des méthodes du SW étendu
en utilisant l’API JAX-WS, et de l’entité Voiture en utilisant l’API JAX-B.
LocationVoiureInterface.java Voiture.java
[1]..........(targetNamespace = "[2] ....") [11] ........
public class Voiture {
public interface LocationVoiureInterface {
[12] ........
[3]........ protected String numImm;
public String newCar ([4]..... Voiture v); protected String marque;
protected String modele;
[5] ....... protected int puissance;
public List<Voiture> VoituresLouees ( protected TypeVoiture type;
[6] ....String dateDeb,
[7] ... String dateFin); enum TypeVoiture{Electrique,
Essence,
Diesel}
[8] .......
public [9] ... listeLocations ([10] ...);
Page 5 sur 7
2. Exercice2 : GraphQL (7 pts)
1. Citez 3 différences entre Rest et GraphQl qui aideront peut-être l’étudiant à faire son
choix :
…………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………
Après avoir lu vos réponses, l'étudiant a finalement choisi GraphQl pour développer les
web services de son application mais il a rencontré quelques difficultés.
Page 6 sur 7
public boolean updateVoiture(Voiture voiture)
[1] …………Voiture {
numImmatriculation: String
marque:String
modele:String
puissanceFiscale:Int
typeVoiture:[2] …………
}
[3] …………TypeVoiture {
ELECTRIQUE
ESSENCE
DIESEL
}
[4] …………Location {
Id:Int
dateDebut:String
dateFin:String
prix:Float
voiture : Voiture
}
type Query {
[5] ………………………………………………
[6] ………………………………………………
}
type Mutation {
[7] ………………………………………………
[8] ………………………………………………
}
schema {
[9] ……….: [10] …………………
[11] ……...: [12] ……………… }
Page 7 sur 7