.NET: Constructeurs

www.altova.com Imprimer cette rubrique Page précédente Un niveau supérieur Page suivante

Accueil >  Annexes > Fonctions XSLT et XPath/XQuery > Fonctions d'extension diverses > Fonctions d'extension .NET >

.NET: Constructeurs

Une fonction d'extension peut être utilisée pour appeler un constructeur .NET. Tous les constructeurs sont appelés avec la pseudo-fonction new(). S'il y a plus d'un constructeur pour une classe, le constructeur qui correspond le mieux au nombre d'arguments fourni est sélectionné. Si aucun constructeur n'est jugé conforme aux arguments fournis, alors une erreur 'No constructor found' sera retournée.

 

 

Des constructeurs qui retournent des types de données XPath/XQuery

Si le résultat d'un appel de constructeur .NET peut être converti implicitement dans des types de données XPath/XQuery, alors la fonction d'extension .NET retournera une séquence qui est un type de données XPath/XQuery.

 

 

Des constructeurs qui retournent des objets .NET

Si le résultat d'un appel de constructeur .NET ne peut pas être converti en un type de données XPath/XQuery adéquat, le constructeur crée un objet .NET encapsulé avec un type qui est le nom de la classe retournant cet objet. Par exemple, si un constructeur pour la classe System.DateTime est appelé (avec System.DateTime.new()), alors un objet ayant le type System.DateTime est retourné.

 

Le format lexical de l'objet retourné peut ne pas être conforme au format lexical d'un type de données XPath. Dans ce cas, la valeur retournée devrait donc être : (i) convertie dans le format lexical du type de données XPath requis ; puis (ii) au type de données XPath requis.

 

Trois choses peuvent être réalisées avec un objet .NET créé par un constructeur :

 

Il peut être réalisé dans une variable :
<xsl:variable name="currentdate" select="date:new(2008, 4, 29)" xmlns:date="clitype:System.DateTime" />
Il peut être passé à une fonction d'extension (voir Méthode d'instance et Champs d'instance):
<xsl:value-of select="date:ToString(date:new(2008, 4, 29))" xmlns:date="clitype:System.DateTime" />
Il peut être converti en une chaîne, nombre ou booléenne :
<xsl:value-of select="xs:integer(data:get_Month(date:new(2008, 4, 29)))" xmlns:date="clitype:System.DateTime" />

 


© 2018 Altova GmbH