Definitions
Defining a Tag
A tag definition is characterized by:
• the list of tag attributes.
• The sub-tags potentially nested within the tag, becoming part of its definition.
• Information describing the order of these sub-tags, how often they appear, etc.
Tag definition example
<xsd:ComplexType name="Person">
<xsd:sequence>
<element name="Address_Person" type="Address_Person"/>
</xsd:sequence>
<xsd :attribute name="Name" Type="xsd:string"/>
<xsd :attribute name="Name" Type="xsd:string"/>
</xsd:complexType>
Tag instance example
<Person name="Smith" first name="Peter>
<Address_Person">
12 rue Cabanis
</Address_Person>
</Person>
Here are the two possible representations of this tag definition in HOPEX:
UML modeling
A UML class represents a family of XML tags, not a specific tag in a document

Through associations, you can reuse a tag definition to define several tags that have the same characteristics in a document. For example, the <WorkAddress> and <HomeAddress> tags can use the same <Address> definition.
Element
UML modeling
When creating an element, a hierarchical relation appears between the tag definitions, which is why associations between classes are a natural representation.
When you create an element, HOPEX automatically creates the association between the class declaring the element and the element type.
This means the element is composed of the class + association.
Example
If the "Person" tag definition includes tags based on the "Address_Person" tag definition, the classes "Person" and "Address_Person" defining these tags will be linked by an association.
Properties of the element
To display the properties of the element, right-click the element and select:
• Type properties to display the properties of the class defining the element.
• Role properties to display the properties of the association role corresponding to the element.
Attribute
Namespace