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