• English
  • Français


.

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

<xsd:complexType name="EquipmentAssetType"> <xsd:sequence> <xsd:element name="SerialNumber" type="xsd:string" minOccurs="0"/> <xsd:element name="Brand" type="xsd:string" minOccurs="0"/> <xsd:element name="Model" type="xsd:string" minOccurs="0"/> </xsd:sequence> </xsd:complexType>

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

<xsd:group name="Equipment"> <xsd:sequence> <!-- add extended elements here --> <xsd:element name="EquipmentAsset" type="EquipmentAssetType" minOccurs="0"/> ... </xsd:sequence> </xsd:group>

5_21_ISA8895_Interoperability_B2MML_Exercise

13

1. Extensions Entreprise ­ Définition Extensions (b)


Définir l'élément complexe local Maintenance
<xsd:element name="Maintenance" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="LastMaintenanceStop" type="xsd:dateTime« minOccurs="0"/> <xsd:element name="NextPlannedMaintenance" type="xsd:dateTime« minOccurs="0"/> </xsd:sequence> </xsd:complexType> </xsd:element>

5_21_ISA8895_Interoperability_B2MML_Exercise

14

1. Extensions Entreprise ­ Définition Extensions (c)


Définir l'élément complexe local TRS
<xsd:element name="TRS" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="Jour" type="xsd:decimal" minOccurs="0"/> <xsd:element name="Semaine" type="xsd:decimal" minOccurs="0"/> <xsd:element name="Année" type="xsd:decimal" minOccurs="0"/> </xsd:sequence> </xsd:complexType> </xsd:element>

5_21_ISA8895_Interoperability_B2MML_Exercise

15

1. Extensions Entreprise ­ Définition Extensions (d)


Définir l'élément simple avec énumération Status
<xsd:element name="Status"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="UnderMaintenance"/> <xsd:enumeration value="Busy"/> <xsd:enumeration value="Available"/> </xsd:restriction> </xsd:simpleType> </xsd:element>

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
<?xml version="1.0" encoding="UTF-8"?> <!-- edited with XMLSpy v2005 sp2 U (http://www.altova.com) by Jean Vieille (Jean Vieille) --> <xsd:schema xmlns=http://www.wbf.org/xml/b2mml-v0300d1-extensionsCompany1 xmlns:xsd=http://www.w3.org/2001/XMLSchema targetNamespace=http://www.wbf.org/xml/b2mml-v0300d1-extensionsCompany1 elementFormDefault="qualified" attributeFormDefault="unqualified"> <!--Schema elements ============== --> </xsd:schema>

5_21_ISA8895_Interoperability_B2MML_Exercise

20

2. Extensions Company1 ­ Définitions Extensions


Définition du groupe global « EquipmentExtensions »

<xsd:group name="EquipmentExtensions"> <xsd:sequence> <xsd:element name="SpeedRotation" type="xsd:string" minOccurs="0"/> <xsd:element name="CouplingHigh" type="xsd:string" minOccurs="0"/> <xsd:element name="CouplingDiameter" type="xsd:string" minOccurs="0"/> </xsd:sequence> </xsd:group>

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
<?xml version="1.0" encoding="UTF-8"?> <!-- edited with XMLSpy v2005 sp2 U (http://www.altova.com) by Jean Vieille (Jean Vieille) --> <xsd:schema xmlns=http://www.wbf.org/xml/b2mml-v0300d1-extensionsCompany2 xmlns:xsd=http://www.w3.org/2001/XMLSchema targetNamespace=http://www.wbf.org/xml/b2mml-v0300d1-extensionsCompany2 elementFormDefault="qualified" attributeFormDefault="unqualified"> <!--Schema elements ============== --> </xsd:schema>

5_21_ISA8895_Interoperability_B2MML_Exercise

25

3. Extensions Company2 ­ Définition Extensions


Définition type complexe LubricatorType

<xsd:complexType name="LubricatorType"> <xsd:sequence> <xsd:element name="ID" type="xsd:integer"/> <xsd:element name="GreaseQuality" type="xsd:string" minOccurs="0"/> <xsd:element name="GreaseQuantity" type="xsd:integer" minOccurs="0"/> <xsd:element name="GreasingPeriod" type="xsd:duration" minOccurs="0"/> </xsd:sequence> </xsd:complexType>

5_21_ISA8895_Interoperability_B2MML_Exercise

26

3. Extensions Company2 ­ Définition Extensions


Définition du groupe global « EquipmentExtensions »

<xsd:group name="EquipmentExtensions"> <xsd:sequence> <xsd:element name="SpeedRotation" type="xsd:integer" minOccurs="0"/> <xsd:element name="NoiseLevel" type="xsd:integer" minOccurs="0"/> <xsd:element name="Lubricators" type="LubricatorType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:group>

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

<?xml version="1.0" encoding="UTF-8"?> <xsd:schema targetNamespace ="http://www.wbf.org/xml/b2mml-v0300d1-extensions" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Xmlns="http://www.wbf.org/xml/b2mml-v0300d1-extensions" xmlns:Company1="http://www.wbf.org/xml/b2mml-v0300d1extensionsCompany1" xmlns:Company2="http://www.wbf.org/xml/b2mml-v0300d1extensionsCompany2" elementFormDefault="qualified" attributeFormDefault="unqualified"> ...

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

... <xsd:import namespace="http://www.wbf.org/xml/b2mml-v0300d1extensionsCompany1" schemaLocation="B2MML-V0300d1-ExtensionsCompany1.xsd"/> <xsd:import namespace="http://www.wbf.org/xml/b2mml-v0300d1extensionsCompany2" schemaLocation="B2MML-V0300d1-ExtensionsCompany2.xsd"/> ...

5_21_ISA8895_Interoperability_B2MML_Exercise

32

4. Intégration extensions Company1 et 2


Ajouter les références de groupes Company1 et Comany2

<xsd:group name="Equipment"> <xsd:sequence> <!-- add extended elements here --> <xsd:element name="EquipmentAsset" type="EquipmentAssetType" minOccurs="0"maxOccurs="unbounded"/> <xsd:element name="Maintenance" minOccurs="0"> <xsd:element name="TRS" minOccurs="0"> <xsd:element name="Status"> <xsd:group ref="Company1:EquipmentExtensions" minOccurs="0"/> <xsd:group ref="Company2:EquipmentExtensions" minOccurs="0"/> </xsd:sequence> </xsd:group>

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

<?xml version="1.0" encoding="UTF-8"?> <!--Sample XML file generated by XMLSpy v2005 sp2 U (http://www.altova.com)--> <Equipment xmlns=http://www.wbf.org/xml/b2mml-v0300d1 xmlns:Extended=http://www.wbf.org/xml/b2mml-v0300d1-extensions xmlns:Company1="http://www.wbf.org/xml/b2mml-v0300d1-extensionsCompany1" xmlns:Company2="http://www.wbf.org/xml/b2mml-v0300d1-extensionsCompany2" xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation="http://www.wbf.org/xml/b2mml-v0300d1 B2MML-V0300d1-Equipment.xsd">

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
<ID>String</ID> <Description>String</Description> <EquipmentProperty> <EquipmentClassID>String</EquipmentClassID> <MaintenanceRequestID>String</MaintenanceRequestID> <MaintenanceWorkOrderID>String</MaintenanceWorkOrderID> <Location> <Extended:EquipmentAsset> <Extended:Maintenance> <Extended:TRS> <Extended:Status>UnderMaintenance</Extended:Status> <Company1:SpeedRotation>String</Company1:SpeedRotation> <Company1:CouplingHigh>String</Company1:CouplingHigh> <Company1:CouplingDiameter>String</Company1:CouplingDiameter> <Company2:SpeedRotation>0</Company2:SpeedRotation> <Company2:NoiseLevel>0</Company2:NoiseLevel> <Company2:Lubricators> <Any/> 5_21_ISA8895_Interoperability_B2MML_Exercise 45

Solution ­ Contenu du document XML ­ Détail extension Entreprise
<Extended:EquipmentAsset> <Extended:SerialNumber>String</Extended:SerialNumber> <Extended:Brand>String</Extended:Brand> <Extended:Model>String</Extended:Model> </Extended:EquipmentAsset> <Extended:Maintenance> <Extended:LastMaintenanceStop> 2001-12-17T09:30:47.0Z</Extended:LastMaintenanceStop> <Extended:NextPlannedMaintenance> 2001-12-17T09:30:47.0Z</Extended:NextPlannedMaintenance> </Extended:Maintenance> <Extended:TRS> <Extended:Jour>3.1415926535897932384626433832795</Extended:Jour> <Extended:Semaine>3.1415926535897932384626433832795</Extended:Semaine> <Extended:Année>3.1415926535897932384626433832795</Extended:Année> </Extended:TRS> <Extended:Status>UnderMaintenance</Extended:Status>

5_21_ISA8895_Interoperability_B2MML_Exercise

46

Solution ­ Contenu du document XML ­ Détail extension Company1 et 2
<Company1:SpeedRotation>String</Company1:SpeedRotation> <Company1:CouplingHigh>String</Company1:CouplingHigh> <Company1:CouplingDiameter>String</Company1:CouplingDiameter> <Company2:SpeedRotation>0</Company2:SpeedRotation> <Company2:NoiseLevel>0</Company2:NoiseLevel> <Company2:Lubricators> <Company2:ID>0</Company2:ID> <Company2:GreaseQuality>String</Company2:GreaseQuality> <Company2:GreaseQuantity>0</Company2:GreaseQuantity> <Company2:GreasingPeriod>P1Y2M3DT10H30M0S</Company2:GreasingPeriod> </Company2:Lubricators>

5_21_ISA8895_Interoperability_B2MML_Exercise

47

FIN

MERCI !

5_21_ISA8895_Interoperability_B2MML_Exercise

48


Johann Sebastian Bach. the music closest to silence, closest, in spite of its being so highly organized, to pure, one-hundred-degree proof Spirit" (Aldous Huxley, Island)