Je crée régulièrement un schéma XSD en transformant un modèle de données propriétaire d'un système hérité. Cela fonctionne plutôt bien. Cependant, le système hérité ne me permet que de spécifier des attributs très basiques d'un paramètre, tels que le type de données (int
, string
etc.).Génération de métadonnées avec XSLT
Je voudrais améliorer la transformation XSL avec un mécanisme qui me permet d'ajouter des méta-données afin de fournir plus de détails pour la transformation. J'ai pensé à quelque chose comme la notation des propriétés Java pour assigner des attributs à un XPath.
Imaginez l'exemple suivant:
modèle de données de l'ancien système (en fait que propre, mais le mieux adapté à des fins de démonstration)
<datamodel>
<customer>
<firstName type="string"/>
<lastName type="string"/>
<age type="int">
<customer>
</datamodel>
méta-données
customer/firstName/@nillable=false
customer/lastName/@nillable=false
customer/age/@nillable=true
customer/firstName/@minOccurs=1
customer/firstName/@maxOccurs=1
customer/lastName/@minOccurs=1
customer/lastName/@maxOccurs=1
résultat XSD schéma
...
<xs:complexType name="customerType">
<xs:sequence>
<xs:element name="firstName" type="xs:string" nillable="false" minOccurs="1" maxOccurs="1"/>
<xs:element name="lastName" type="xs:string" nillable="false" minOccurs="1" maxOccurs="1"/>
<xs:element name="age" type="xs:int" nillable="true"/>
</xs:sequence>
</xs:complexType>
...
Que pensez-vous de cela? Existe-t-il un moyen d'inclure des métadonnées dans une feuille de style XSL?
1) d'accord, pour être honnête: Le système existant est source fermé sans aucune chance de jouer avec le code de génération de modèle de données et non propre comme décrit ci-dessus. Cependant, c'est assez bon à des fins de démonstration. 2) Je suis conscient des inconvénients en matière de maintenance – poezn