Model Usage Guide:- OASIS:PLCS PSM XML schema
Note:
In development

Address block Figure 1

images/Address.png
Figure 1 -  Address block

XSD code

            <xsd:element name=“Address" type="tns:Address”/>
            
            <xsd:complexType name=“Address”>
                <xsd:complexContent>
                <xsd:extension base="tns:Entity">
                    <xsd:sequence/>     
                </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
        

XML data

            <Address uid="id01“/>  
        
Note:
In development

LocationRepresentation block Figure 2

images/LocationRepresentation.png
Figure 2 -  LocationRepresentation block

XSD code

            <xsd:element name=“LocationRepresentation" type="tns:LocationRepresentation”/>
            
            <xsd:complexType name=“LocationRepresentation” abstract="true">
                <xsd:complexContent>
                    <xsd:extension base="tns:Entity">
                        <xsd:sequence/>     
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
        

XML data

            N/A  
        
Note:
In development

Address block with town property Figure 3

images/Address.town.png
Figure 3 -  Address block with town property

XSD code

            <xsd:element name=“Address " type="tns: Address”/>
            
            <xsd:complexType name="Address">
                <xsd:complexContent>
                    <xsd:extension base="tns:Entity">
                        <xsd:sequence>
                            <xsd:element name="Town" type="xsd:string" minOccurs="0" maxOccurs="1"/>
                        </xsd:sequence>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
        

XML data

            <Address id="id01">
                <Town>London</Town>
            </Address>
        
Note:
In development

Activity block to ActivityMethod block Figure 4

images/Activity.ActivityMethod.png
Figure 4 -  Activity block to ActivityMethod block

XSD code

            <xsd:complexType name="Activity">
                <xsd:complexContent>
                    <xsd:extension base="tns:Entity">
                        <xsd:sequence>
                            <xsd:element name="ChosenMethod" type="tns:Reference" minOccurs="0" maxOccurs="1"/>
                        </xsd:sequence>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="ActivityMethod">
                <xsd:complexContent>
                    <xsd:extension base="tns:Entity">
                        <xsd:sequence/>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
        

XML data

            <Activity uid="id01">
                <ChosenMethod uidRef="id02"/>
            </Activity>
            
            <ActivityMethod uid="id02"/>
        
Note:
In development

ExperienceInstance block to DefinedActivitiesSelect block Figure 5

images/ExperienceInstance.DefinedActivitiesSelect.png
Figure 5 -  ExperienceInstance block to DefinedActivitiesSelect block

XSD code

            <xsd:complexType name="ResourceAsRealized">
               <xsd:complexContent>
                  <xsd:extension base="tns:Entity">
                     <xsd:sequence/>
                  </xsd:extension>
               </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="ActivityActual">
               <xsd:complexContent>
                  <xsd:extension base="tns:Activity">
                     <xsd:sequence/>
                  </xsd:extension>
               </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="ExperienceInstance">
               <xsd:complexContent>
                  <xsd:extension base="tns:Entity">
                     <xsd:sequence>
                        <xsd:element name="ConsistsOf" type="tns:Reference" minOccurs="0" maxOccurs="1"/>
                     </xsd:sequence>
                  </xsd:extension>
               </xsd:complexContent>
            </xsd:complexType>
        

XML data

            <ExperienceInstance uid="id01">
                <ConsistsOf uidRef="id02"/>
            </ExperienceInstance>
            
            <ActivityActual uid="id02"/>
        
Note:
In development

Activity block as ActivityMethod block Figure 6

images/ActivityAsActivityMethod.png
Figure 6 -  Activity block as ActivityMethod block

XSD code

            <xsd:complexType name="Activity">
                <xsd:complexContent>
                    <xsd:extension base="tns:Entity">
                        <xsd:sequence>
                            <xsd:element name="ChosenMethod" type="tns:Reference" minOccurs="0" maxOccurs="1"/>
                        </xsd:sequence>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="ActivityMethod">
                <xsd:complexContent>
                    <xsd:extension base="tns:Entity">
                        <xsd:sequence/>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="ActivityActual">
                <xsd:complexContent>
                    <xsd:extension base="tns:Activity">
                        <xsd:sequence/>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
        

XML data

            <ActivityActual uid="id01">
                <ChosenMethod uidRef="id02"/>
            </ActivityActual>
            
            <ActivityMethod uid="id02"/>
        
Note:
In development

Product as ProductAsIndividual block to ProductVersion as ProductAsRealized block Figure 7

images/ProductAsIndividualToProductAsRealized.png
Figure 7 -  Product as ProductAsIndividual block to ProductVersion as ProductAsRealized block
NOTE    Only ProductAsIndividual and ProductAsRealized are instantiated in this example.

XSD code

            <xsd:complexType name="Product">
                <xsd:complexContent>
                    <xsd:extension base="tns:Entity">
                        <xsd:sequence>
                            <xsd:element name="Versions" minOccurs="0" maxOccurs="1">
                               <xsd:complexType>
                                    <xsd:sequence>
                                        <xsd:element name="ProductVersion" type="tns:ProductVersion" minOccurs="1" maxOccurs="unbounded"/>
                                    </xsd:sequence>
                                </xsd:complexType>
                            </xsd:element>
                        </xsd:sequence>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="ProductAsIndividual">
                <xsd:complexContent>
                    <xsd:extension base="tns:Product"/>
                </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="ProductAsIndividualVersion" abstract="true">
                <xsd:complexContent>
                    <xsd:extension base="tns:ProductVersion"/>
                </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="ProductAsRealized">
                <xsd:complexContent>
                    <xsd:extension base="tns:ProductAsIndividualVersion"/>
                </xsd:complexContent>
            </xsd:complexType>
        
NOTE    There is no explicit redefinition of inherited (from Product to ProductAsIndividual) “versions” attribute in the XSD.

XML data

            <ProductAsIndividual uid="id06">
                <Versions>
                    <ProductVersion uid="id07" xsi:type="ProductAsRealized"/>
                </Versions>
            </ProductAsIndividual>
        
NOTE    The "xsi:type" attribute is used in data to declare that this ProductVersion is a ProductAsRealized.
Note:
In development

Activity block with Identification Figure 8

images/Activity.id.png
Figure 8 -  Activity block with Identification

XSD code

            <xsd:complexType name="Activity">
                <xsd:complexContent>
                    <xsd:extension base="tns:Entity">
                        <xsd:sequence>
                            <xsd:element name="Identifications" minOccurs="0" maxOccurs="1">
                                <xsd:complexType>
                                    <xsd:sequence>
                                        <xsd:element name="Identification" type="tns:Identification" minOccurs="1" maxOccurs="unbounded"/>
                                    </xsd:sequence>
                                </xsd:complexType>
                            </xsd:element>
                        </xsd:sequence>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="Identification">
                <xsd:complexContent>
                    <xsd:extension base="tns:Entity">
                        <xsd:attribute name="id" type="xsd:string"/>
                        <xsd:attribute name="idContextRef" type="xsd:string"/>
                        <xsd:attribute name="idRoleRef" type="xsd:string"/>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="Organization">
                <xsd:complexContent>
                    <xsd:extension base="tns:Entity">
                        <xsd:sequence>
                            <xsd:element name="Identifications" minOccurs="1" maxOccurs="1">
                                <xsd:complexType>
                                    <xsd:sequence>
                                        <xsd:element name="Identification" type="tns:Identification" minOccurs="1" maxOccurs="unbounded"/>
                                    </xsd:sequence>
                                </xsd:complexType>
                            </xsd:element>
                        </xsd:sequence>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="ExternalOwlClass">
               <xsd:complexContent>
                  <xsd:extension base="tns:Entity">
                     <xsd:sequence>
                        <xsd:element name="Class" type="tns:Uri" minOccurs="1" maxOccurs="1"/>
                     </xsd:sequence>
                  </xsd:extension>
               </xsd:complexContent>
            </xsd:complexType>
        

XML data

            <Activity uid="id01">
                <Identifications>
                    <Identification uid="id02" id="Act001" idContextRef="id03" idRoleRef="id04"/>
                </Identifications>
            </Activity>
            
            <Organization uid="id05">
                <Identifications>
                    <Identification uid="id06" id="Org001" idRoleRef="id07"/>
                </Identifications>
            </Organization>   
            
            <ExternalOwlClass uid="id04">
                <Class>http://docs.oasis-open.org/plcs/ns/plcslib/v1.0/data/plcs/plcs-psm/refdata/plcs-psm-psm#ActivityIdentifier</Class>
            </ExternalOwlClass>
            
            <ExternalOwlClass uid="id07">
                <Class>http://docs.oasis-open.org/plcs/ns/plcslib/v1.0/data/plcs/plcs-psm/refdata/plcs-psm-psm#OrganizationIdentifier</Class>
            </ExternalOwlClass>
        
NOTE    The Organization instance and the two ExternalOwlClass instances here would typically be instantiated once and referred to many times.
Note:
In development

Organization block with identifications Figure 9

images/Organization.ids.png
Figure 9 -  Organization block with identifications

XSD code

            
            <xsd:complexType name="Identification">
               <xsd:complexContent>
                  <xsd:extension base="tns:Entity">
                     <xsd:attribute name="id" type="xsd:string"/>
                     <xsd:attribute name="idContextRef" type="xsd:string"/>
                     <xsd:attribute name="idRoleRef" type="xsd:string"/>
                  </xsd:extension>
               </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="Organization">
               <xsd:complexContent>
                  <xsd:extension base="tns:Entity">
                     <xsd:sequence>
                        <xsd:element name="Identifications" minOccurs="1" maxOccurs="1">
                          <xsd:complexType>
                             <xsd:sequence>
                                <xsd:element name="Identification" type="tns:Identification" minOccurs="1" maxOccurs="unbounded"/>
                             </xsd:sequence>
                          </xsd:complexType>
                        </xsd:element>
                     </xsd:sequence>
                  </xsd:extension>
               </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="ExternalOwlClass">
               <xsd:complexContent>
                  <xsd:extension base="tns:Entity">
                     <xsd:sequence>
                        <xsd:element name="Class" type="tns:Uri" minOccurs="1" maxOccurs="1"/>
                     </xsd:sequence>
                  </xsd:extension>
               </xsd:complexContent>
            </xsd:complexType>
        

XML data

            <Organization uid="id01">
               <Identifications>
                  <Identification uid="id02" id="99789" idRoleRef="id04"/>
                  <Identification uid="id03" id="103933453" idRoleRef="id05"/>
               </Identifications>
            </Organization>  
            
            <ExternalOwlClass uid="id04">
               <Class>http://docs.oasis-open.org/plcs/ns/plcslib/v1.0/data/plcs/plcs-psm/refdata/plcs-psm-psm#CAGEcode</Class>
            </ExternalOwlClass>
            
            <ExternalOwlClass uid="id05">
               <Class>http://docs.oasis-open.org/plcs/ns/plcslib/v1.0/data/plcs/plcs-psm/refdata/plcs-psm-psm#DNScode</Class>
            </ExternalOwlClass>
        
Note:
In development

Product block with ProductVersionFigure 10

images/Product.ProductVersion.png
Figure 10 -  Product block with ProductVersion

XSD code

            
            <xsd:complexType name="Product">
                <xsd:complexContent>
                    <xsd:extension base="tns:Entity">
                        <xsd:sequence>
                            <xsd:element name="Versions" minOccurs="0" maxOccurs="1">
                                <xsd:complexType>
                                    <xsd:sequence>
                                        <xsd:element ref="tns:ProductVersion" minOccurs="1“ maxOccurs="unbounded"/>
                                    </xsd:sequence>
                                </xsd:complexType>
                            </xsd:element>
                        </xsd:sequence>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
        

XML data

            <Product uid="id01">
                <Versions>
                    <ProductVersion uid="id02"/>
                </Versions>
            </Product>
        
NOTE    The encapsulation here is enforced by the use of a SysML composition association.
Note:
In development

Product block with assigned Location Figure 11

images/Product.LocationAssignment.png
Figure 11 -  Product block with assigned Location

XSD code

            
            <xsd:complexType name="Product">
                <xsd:complexContent>
                    <xsd:extension base="tns:Entity">
                        <xsd:sequence>
                            <xsd:element ref="tns:LocationAssignment" minOccurs="0" maxOccurs="unbounded"/>
                        </xsd:sequence>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="LocationAssignment">
                <xsd:complexContent>
                    <xsd:extension base="tns:AssignmentObject">
                        <xsd:sequence>
                            <xsd:element name="AssignedLocation" type="tns:Reference" minOccurs="1“ maxOccurs="1"/>
                        </xsd:sequence>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="Location">
                <xsd:complexContent>
                    <xsd:extension base="tns:Entity">
                        <xsd:sequence/>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
        

XML data

            <Product uid="id01">
                <LocationAssignment uid="id02">
                    <AssignedLocation uidRef="id03"/>
                </LocationAssignment>
            </Product>
            
            <Location uid="id03"/>
        
NOTE    The "assignedTo” association from the SysML does not appear explicitly in the XSD or the XML. It is implied by the encapsulation.
Note:
In development

LocationAssignment (to Product) with assigned Document Figure 12

images/Product.LocationAssignment.Document.png
Figure 12 -  LocationAssignment (to Product) with assigned Document

XSD code

            
            <xsd:complexType name="Product">
                <xsd:complexContent>
                    <xsd:extension base="tns:Entity">
                        <xsd:sequence>
                            <xsd:element ref="tns:LocationAssignment" minOccurs="0" maxOccurs="unbounded"/>
                        </xsd:sequence>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="LocationAssignment">
                <xsd:complexContent>
                    <xsd:extension base="tns:AssignmentObject">
                        <xsd:sequence>
                            <xsd:element name="AssignedLocation" type="tns:Reference" minOccurs="1“ maxOccurs="1"/>
                            <xsd:element ref="tns:DocumentAssignment" minOccurs="0" maxOccurs="unbounded"/>
                        </xsd:sequence>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="Location">
                <xsd:complexContent>
                    <xsd:extension base="tns:Entity">
                        <xsd:sequence/>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="DocumentAssignment">
                <xsd:complexContent>
                    <xsd:extension base="tns:AssignmentObject">
                        <xsd:sequence>
                            <xsd:element name="AssignedDocument" type="tns:Reference" minOccurs="1“ maxOccurs="1"/>
                        </xsd:sequence>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="Document">
                <xsd:complexContent>
                    <xsd:extension base="tns:Product">
                        <xsd:sequence/>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>            
        

XML data

            <Product uid="id01">
                <LocationAssignment uid="id02">
                    <AssignedLocation uidRef="id03"/>
                    <DocumentAssignment uid="id04">
                       <AssignedDocument uidRef="id05">
                    </DocumentAssignment>
                </LocationAssignment>
            </Product>
            
            <Location uid="id03"/>
            
            <Document uid="id05"/>
        
Note:
In development

ActivityRelationship betweeen two Activity block instances Figure 13

images/ActivityRelationship.Activity.png
Figure 13 -  ActivityRelationship betweeen two Activity block instances

XSD code

            
            <xsd:complexType name="ActivityRelationship">
                <xsd:complexContent>
                    <xsd:extension base="tns:RelationshipObject">
                        <xsd:sequence>
                            <xsd:element name="Related" type="tns:Reference" minOccurs="1" maxOccurs="1"/>
                        </xsd:sequence>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="Activity">
                <xsd:complexContent>
                    <xsd:extension base="tns:Entity">
                        <xsd:sequence>
                            <xsd:element ref="tns:ActivityRelationship" minOccurs="0" maxOccurs="unbounded">
                        </xsd:sequence>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
        

XML data

            <Activity uid="id01">
                <ActivityRelationship uid="id02">
                    <Related uidRef="id03"/>
                </ActivityRelationship>
            </Activity>
            
            <Activity uid="id03"/>
        
NOTE    The "relating” association from the SysML does not appear explicitly in the XSD or the XML. It is implied by the encapsulation.
Note:
In development

Document assigned to ActivityRelationship betweeen two Activity block instances Figure 14

images/Document.ActivityRelationship.Activity.png
Figure 14 -  Document assigned to ActivityRelationship betweeen two Activity block instances

XSD code

            
            <xsd:complexType name="ActivityRelationship">
                <xsd:complexContent>
                    <xsd:extension base="tns:RelationshipObject">
                        <xsd:sequence>
                            <xsd:element name="Related" type="tns:Reference" minOccurs="1" maxOccurs="1"/>
                            <xsd:element ref="tns:DocumentAssignment" minOccurs="0" maxOccurs="unbounded"/>
                        </xsd:sequence>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="Activity">
                <xsd:complexContent>
                    <xsd:extension base="tns:Entity">
                        <xsd:sequence>
                            <xsd:element ref="tns:ActivityRelationship" minOccurs="0" maxOccurs="unbounded">
                        </xsd:sequence>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="DocumentAssignment">
                <xsd:complexContent>
                    <xsd:extension base="tns:AssignmentObject">
                        <xsd:sequence>
                            <xsd:element name="AssignedDocument" type="tns:Reference" minOccurs="1“ maxOccurs="1"/>
                        </xsd:sequence>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="Document">
                <xsd:complexContent>
                    <xsd:extension base="tns:Product">
                        <xsd:sequence/>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
        

XML data

            <Activity uid="id01">
                <ActivityRelationship uid="id02">
                    <Related uidRef="id03"/>
                    <DocumentAssignment uid="id04">
                    <AssignedDocument uidRef="id05"/>
                    </DocumentAssignment>
                </ActivityRelationship>
            </Activity>
            
            <Activity uid="id03"/>
            
            <Document uid="id05"/>
        
Note:
In development

Product block with Description Figure 15

images/Product.Description.png
Figure 15 -  Product block with Description

XSD code

            
            <xsd:complexType name="Product">
                <xsd:complexContent>
                    <xsd:extension base="tns:Entity">
                        <xsd:sequence>
                            <xsd:element name="Descriptions" minOccurs="0" maxOccurs="1">
                                <xsd:complexType>
                                    <xsd:sequence>
                                        <xsd:element name="Description" type="tns:Description" minOccurs="1" maxOccurs="unbounded"/>
                                    </xsd:sequence>
                                </xsd:complexType>
                            </xsd:element>
                        </xsd:sequence>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="Description">
                <xsd:complexContent>
                    <xsd:extension base="tns:Entity">
                        <xsd:sequence>
                            <xsd:element name="LocalizedString" type="tns:LocalizedString" minOccurs="1" maxOccurs="unbounded"/>
                        </xsd:sequence>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="LocalizedString">
                <xsd:simpleContent>
                    <xsd:extension base="xsd:string">
                        <xsd:attribute name="lang" type="xsd:language"/>
                        <xsd:attribute name="uid" type="xsd:ID"/>
                    </xsd:extension>
                </xsd:simpleContent>
            </xsd:complexType>
        

XML data

            <Product uid="id01">
                <Descriptions>
                    <Description uid="id02">
                        <LocalizedString uid="id03">My Product</LocalizedString>
                    </Description>
                </Descriptions>    
            </Product>
        
Note:
In development

Product block with Multi-lingual Descriptions Figure 16

images/Product.Description.png
Figure 16 -  Product block with Multi-lingual Descriptions

XSD code

            
            <xsd:complexType name="Product">
             <xsd:complexContent>
              <xsd:extension base="tns:Entity">
               <xsd:sequence>
                <xsd:element name="Descriptions" minOccurs="0" maxOccurs="1">
                    <xsd:complexType>
                       <xsd:sequence>
                        <xsd:element name="Description" type="tns:Description" minOccurs="1" maxOccurs="unbounded"/>
                       </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
               </xsd:sequence>
              </xsd:extension>
             </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="Description">
              <xsd:complexContent>
                  <xsd:extension base="tns:Entity">
                   <xsd:sequence>
                    <xsd:element name="LocalizedString" type="tns:LocalizedString" minOccurs="1" maxOccurs="unbounded"/>
                   </xsd:sequence>
                  </xsd:extension>
              </xsd:complexContent>
            </xsd:complexType>
            
            <xsd:complexType name="LocalizedString">
              <xsd:simpleContent>
                  <xsd:extension base="xsd:string">
                     <xsd:attribute name="lang" type="xsd:language"/>
                     <xsd:attribute name="uid" type="xsd:ID"/>
                  </xsd:extension>
              </xsd:simpleContent>
            </xsd:complexType>
        

XML data

            <Product uid="id01">
              <Descriptions>
                 <Description uid="id02">
                     <LocalizedString lang="en-UK" uid="id03">My Product</LocalizedString>
                     <LocalizedString lang="de-DE" uid="id04">Mein Produkt</LocalizedString>
                 </Description>
              </Descriptions>    
            </Product>
        
Note:
In development

Approval with Planned Date Figure 17

images/Approval.Date.png
Figure 17 -  Approval with Planned Date

XSD code

            
            <xsd:complexType name="Approval">
                <xsd:complexContent>
                    <xsd:extension base="tns:Entity">
                        <xsd:sequence>
                            <xsd:element name="PlannedDate" type="tns:DateTimeString" minOccurs="0“ maxOccurs="1"/>
                        </xsd:sequence>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
        

XML data

            <Approval uid="id01">
                <PlannedDate uid="id02">2012-11-09T00:00:00</PlannedDate> 
            </Approval>
        
NOTE    This would be for a date with no time specified, 2012-11-09T24:00:00 would be used for midnight.
Issue reporting