This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License. Attribution: Jean Vieille Work: ISA8895 Implementation Section: Interoperability Chapter: B2MML Exercise Language: Français Version: V3 - 05/2011 Jean Vieille www.syntropicfactory.info j.vieille@syntropicfactory.info Research community www.controlchainmanagement.org Consulting group www.controlchaingroup.com Exposé général du problème Prendre en compte les extensions nécessaire au type B2MML "Equipment" Ø Les extensions proviennent de 3 sources: Extensions propres à l'entreprise concernée § Extensions des fournisseurs de système Company1 et Company2 § Ø Les extensions fournisseurs sont traitées dans des schémas séparés § Ces fichiers sont importés dans le fichier B2MML Extensions, seul schéma d'extension connu par les schémas standards B2MML qui ne doivent pas être modifiés Ø Il y a des conflits de noms entre ces extensions: Company1 ­ definit SpeedRotation comme string Company2 ­ definit SpeedRotation comme integer § Des espaces de nom additionnels sont nécessaires, un par fournisseur Ø Les squelettes de fichiers sont fournis, Compléter les fichiers § Vérifier le résultat dans le schéma B2MML Equipment § Générer un document XML basé sur le schéma Equipment avec des valeurs pour les extensions définies 5_21_ISA8895_Interoperability_B2MML_Exercise 2 Exposé du problème ­ Fichiers nécessaires B2MML Core schemas Ø B2MML-V0300d1-Common.xsd Ø B2MML-V0300d1-Equipment.xsd Nota: ne doivent jamais être modifiés B2MML Extension schema Ø B2MML-V0300d1-Extensions.xsd Fichiers d'extension B2MML des fournisseurs Ø B2MML-V0300d1-ExtensionsCompany1.xsd Ø B2MML-V0300d1-ExtensionsCompany2.xsd Echantillon de documents XML Ø B2MML-V0300d1-Example 1.xml 5_21_ISA8895_Interoperability_B2MML_Exercise 3 Modèle Equipement => equipment.xsd Information About Equipment Classes Information About Equipment May be made up of 0..n Equipment Equipment Class Class 0..n 0..n Defined by Equipment Equipment Has properties of 0..n Has values for 0..n Maps to Equipment Equipment Class Property Class Property Is tested by a 1..n Equipment Equipment Property Property 0..n Information About Capability Tests 0..n Equipment Equipment Capability Test Capability Test Specification Specification 0..n Defines a procedure for obtaining a Records the execution of Equipment Equipment Capability Test Capability Test Result Result 5_21_ISA8895_Interoperability_B2MML_Exercise 4 Représentation graphique XMLSpy Name of an element or element type Indicates fixed order of elements Indicates elements Indicates 1 instance only Indicates 1 to many instances Indicates 0 or 1 instance only Indicates 0 to many instances Indicates selection of alternatives Indicates contained elements Indicates no contained elements 5_21_ISA8895_Interoperability_B2MML_Exercise 5 EquipmentInformation 5_21_ISA8895_Interoperability_B2MML_Exercise 6 EquipmentClass Equipment 5_21_ISA8895_Interoperability_B2MML_Exercise 7 Exemple ­ Cartographie des Schema Core Schemas B2MML Common Schema Import Extension Schemas Import B2MML Extensions Schema Import Company 1 Extensions Schema Company 2 Extensions Schema Include B2MML Equipment Schema Namespace Reference Namespace Reference Namespace Reference B2MML XML Documents Namespace Reference 5_21_ISA8895_Interoperability_B2MML_Exercise 8 Namespaces W3C XSD Ø http://www.w3.org/2001/XMLSchema Ø Les types de base XML Schema / Tous les schémas B2MML Ø http://www.wbf.org/xml/b2mml-v0300d1" Ø Les types de base B2MML / Les schémas B2MML Extension utilisateur Ø http://www.wbf.org/xml/b2mml-v0300d1-extensions Ø Les extensions et types / le schéma « Extensions » Autres extensions Ø http://www.wbf.org/xml/b2mml-v0300d1-extensionsCompany1 Ø http://www.wbf.org/xml/b2mml-v0300d1-extensionsCompany2 Ø D'autres types externes à intégrer / Des schémas externes divers 5_21_ISA8895_Interoperability_B2MML_Exercise 9 Programme de l'exercice 1. Définir les extensions entreprise 2. Définir les extensions Company1 3. Définir les extensions Company2 4. Intégrer les extensions Company1 et 2 5. Créer un document XML valide 5_21_ISA8895_Interoperability_B2MML_Exercise 10 1. Extensions Entreprise Etendre le type complexe B2MML Equipment avec : Définir un type global "EquipmentAssetType" Ø Composé de SerialNumber, Brand, Model, de type xsd:string Intégrer les extensions Entreprise Ø "EquipmentAsset", type EquipmentAssetType unique optionnel Ø "Maintenance", élément complexe local unique optionnel LastMaintenanceStop ­ type xsd:dateTime, unique optionnel § NextScheduledMaintenance ­ type xsd:dateTime, unique optionnel § Ø "TRS", élément complexe local unique optionnel Jour ­ type xsd:decimal, unique optionnel § Mois ­ type xsd:decimal, unique optionnel § Année ­ type xsd:decimal, unique optionnel § Ø "Status", élément simple ­ type xsd:string, unique optionnel § Restriction par une énumération de valeurs possible "UnderMaintenance", "Busy", "Available" 5_21_ISA8895_Interoperability_B2MML_Exercise 11 1. Extensions Entreprise ­ Définition Extensions (a) Définition du nouveau type complexe EquipmentAssetType 5_21_ISA8895_Interoperability_B2MML_Exercise 12 1. Extensions Entreprise ­ Définition Extensions (b) Localiser et compléter le groupe de substitution associé à l'élément standard B2MML Equipment Définir l'élement EquipmentAsset de type EquipmentAssetType complexe défini précédemment ... 5_21_ISA8895_Interoperability_B2MML_Exercise 13 1. Extensions Entreprise ­ Définition Extensions (b) Définir l'élément complexe local Maintenance 5_21_ISA8895_Interoperability_B2MML_Exercise 14 1. Extensions Entreprise ­ Définition Extensions (c) Définir l'élément complexe local TRS 5_21_ISA8895_Interoperability_B2MML_Exercise 15 1. Extensions Entreprise ­ Définition Extensions (d) Définir l'élément simple avec énumération Status 5_21_ISA8895_Interoperability_B2MML_Exercise 16 1. Extensions Entreprise ­ Résultat attendu + 5_21_ISA8895_Interoperability_B2MML_Exercise 17 Programme de l'exercice 1. Définir les extensions entreprise 2. Définir les extensions Company1 3. Définir les extensions Company2 4. Intégrer les extensions Company1 et 2 5. Créer un document XML valide 5_21_ISA8895_Interoperability_B2MML_Exercise 18 2. Extensions Company1 Fichier « B2MML-V0300d1-ExtensionsCompany1.xsd » Objectif: Définir les extensions spécifique au type Equipment du fournisseur Company1 Ø Target Namespace « http://www.wbf.org/xml/b2mml-v0300d1extensionsCompany1 » Définit un groupe « EquipmentExtensions » composé de Ø SpeedRotation ­ Type xsd:string unique optionnel Ø CouplingHigh ­ Type xsd:string unique optionnel Ø CouplingDiameter ­ Type xsd:string unique optionnel 5_21_ISA8895_Interoperability_B2MML_Exercise 19 2. Extensions Company1 ­ Entête schéma 5_21_ISA8895_Interoperability_B2MML_Exercise 20 2. Extensions Company1 ­ Définitions Extensions Définition du groupe global « EquipmentExtensions » 5_21_ISA8895_Interoperability_B2MML_Exercise 21 2. Extensions Company1 Résultat attendu 5_21_ISA8895_Interoperability_B2MML_Exercise 22 Programme de l'exercice 1. Définir les extensions entreprise 2. Définir les extensions Company1 3. Définir les extensions Company2 4. Intégrer les extensions Company1 et 2 5. Créer un document XML valide 5_21_ISA8895_Interoperability_B2MML_Exercise 23 3. Extensions Company2 Fichier « B2MML-V0300d1-ExtensionsCompany2.xsd » Objectif: Définir les extensions spécifique au type Equipment du fournisseur Company2 Ø Target Namespace « http://www.wbf.org/xml/b2mml-v0300d1extensionsCompany2 » Définir le type complexe LubricatorType composé de Ø ID ­ Type xsd:integer unique obligatoire Ø GreaseQuality ­ Type xsd:string unique optionnel Ø GreaseQuantity ­ Type xsd:integer unique optionnel Ø GreasingPeriod ­ Type xsd:duration unique optionnel Définir un groupe « EquipmentExtensions » composé de Ø SpeedRotation ­ Type xsd:integer unique optionnel Ø NoiseLevel ­ Type xsd:integer unique optionnel Ø Lubricators ­ Type LubricatorType multiple optionnel 5_21_ISA8895_Interoperability_B2MML_Exercise 24 3. Extensions Company2 ­ Entête schéma 5_21_ISA8895_Interoperability_B2MML_Exercise 25 3. Extensions Company2 ­ Définition Extensions Définition type complexe LubricatorType 5_21_ISA8895_Interoperability_B2MML_Exercise 26 3. Extensions Company2 ­ Définition Extensions Définition du groupe global « EquipmentExtensions » 5_21_ISA8895_Interoperability_B2MML_Exercise 27 3. Extensions Company2 ­ Résultat attendu 5_21_ISA8895_Interoperability_B2MML_Exercise 28 Programme de l'exercice 1. Définir les extensions entreprise 2. Définir les extensions Company1 3. Définir les extensions Company2 4. Intégrer les extensions Company1 et 2 5. Créer un document XML valide 5_21_ISA8895_Interoperability_B2MML_Exercise 29 4. Intégration extensions Company1 et 2 Ajouter 2 éléments d'extension de fournisseurs pour le type Equipment Ø Ces éléments sont contenus dans des fichiers séparés Ø Ces fichiers sont importés dans le fichier B2MML Extensions Ø Il y a conflit de noms, des espaces de nom additionnels sont nécessaires § Company1 ­ definit SpeedRotation comme string § Company2 ­ definit SpeedRotation comme integer Observer l'héritage des types externes dans le schéma B2MML Extensions Observer la consolidation des extensions dans le schéma B2MML Equipment (non modifié par lui-même) 5_21_ISA8895_Interoperability_B2MML_Exercise 30 4. Intégration extensions Company1 et 2 Ajout de 2 espaces de noms, un pour chaque fournisseur de schémas d'extensions ... 5_21_ISA8895_Interoperability_B2MML_Exercise 31 4. Intégration extensions Company1 et 2 Importation des schémas correspondant aux espaces de nom définis ci-dessus ... ... 5_21_ISA8895_Interoperability_B2MML_Exercise 32 4. Intégration extensions Company1 et 2 Ajouter les références de groupes Company1 et Comany2 5_21_ISA8895_Interoperability_B2MML_Exercise 33 4. Intégration extensions Company1 et 2 ­ Résultat attendu dans le schéma Extensions 5_21_ISA8895_Interoperability_B2MML_Exercise 34 4. Intégration extensions Company1 et 2 ­ Résultat attendu dans le schéma Extensions 5_21_ISA8895_Interoperability_B2MML_Exercise 35 4. Intégration extensions Company1 et 2 ­ Résultat attendu dans le schéma Equipement 5_21_ISA8895_Interoperability_B2MML_Exercise 36 4. Intégration extensions Company1 et 2 ­ Résultat attendu dans le schéma Equipement 5_21_ISA8895_Interoperability_B2MML_Exercise 37 4. Intégration extensions Company1 et 2 ­ Résultat attendu dans le schéma Equipement 5_21_ISA8895_Interoperability_B2MML_Exercise 38 4. Intégration extensions Company1 et 2 ­ Résultat attendu dans le schéma Equipement 5_21_ISA8895_Interoperability_B2MML_Exercise 39 Programme de l'exercice 1. Définir les extensions entreprise 2. Définir les extensions Company1 3. Définir les extensions Company2 4. Intégrer les extensions Company1 et 2 5. Créer un document XML valide 5_21_ISA8895_Interoperability_B2MML_Exercise 40 5. Créer un document XML valide (a) Ouvrir le schéma B2MML Equipment Utilisez XMLSpy pour générer la structure d'un document XML Ø Menu DTD/Schema>Generate Sample XML File Ø Validez toutes les options, 1 occurrence des éléments répétables Ø Sélectionnez l'élément racine Equipment Ø Le document est généré avec des valeurs par défaut Supprimer l'élément « Element » inclus Ø Récursivité du modèle non utilisée, pour éviter d'éditer 2 fois les extensions 5_21_ISA8895_Interoperability_B2MML_Exercise 41 5. Créer un document XML valide (b) F7 : le document est bien formé F8 : Le document n'est pas valide. Ø Les extensions Company1 et Company2 ne sont pas correctement reconnues § Importées dans des namespaces séparés dans le schéma extensions § Le document généré ne reprend que les namespaces de premier niveau Modifier l'en-tête XML pour inclure les namespaces company1 et Company2 5_21_ISA8895_Interoperability_B2MML_Exercise 42 5. Créer un document XML valide ­ Entête du document XML Les déclarations d'espaces de nom doivent inclure les schémas d'extension 5_21_ISA8895_Interoperability_B2MML_Exercise 43 5. Créer un document XML valide ­ Editer les extensions Company1 et Comapny2 Modifier les balises des extensions company1 et 2 Ø Exemple : Company1:SpeedRotation au lieu de SpeedRotation Ø Le document doit être à nouveau valide Conclusion: le document XML valide met en évidence l'origine des extensions Ø Extended = Entreprise Ø Company1 = Company1 Ø Company2 = Company2 5_21_ISA8895_Interoperability_B2MML_Exercise 44 Solution ­ Contenu du document XML String String String String String UnderMaintenance String String String 0 0 5_21_ISA8895_Interoperability_B2MML_Exercise 45 Solution ­ Contenu du document XML ­ Détail extension Entreprise String String String 2001-12-17T09:30:47.0Z 2001-12-17T09:30:47.0Z 3.1415926535897932384626433832795 3.1415926535897932384626433832795 3.1415926535897932384626433832795 UnderMaintenance 5_21_ISA8895_Interoperability_B2MML_Exercise 46 Solution ­ Contenu du document XML ­ Détail extension Company1 et 2 String String String 0 0 0 String 0 P1Y2M3DT10H30M0S 5_21_ISA8895_Interoperability_B2MML_Exercise 47 FIN MERCI ! 5_21_ISA8895_Interoperability_B2MML_Exercise 48