Bug 502519

Summary: xmllint complains about element Model: validity error : Syntax of value for attribute xmi.id of Model is not valid"
Product: [Applications] umbrello Reporter: Ralf Habacker <ralf.habacker>
Component: generalAssignee: Umbrello Development Group <umbrello-devel>
Status: REPORTED ---    
Severity: normal    
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Other   
OS: All   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Bug Depends on:    
Bug Blocks: 415989    

Description Ralf Habacker 2025-04-07 11:37:41 UTC
When checking the validation support for xmi files requested on https://bugs.kde.org/show_bug.cgi?id=415989#c2, problems occurred in connection with xml attributes of type ID and IDREFS.

STEPS TO REPRODUCE
1. git clone umbrello sources from git@invent.kde.org:sdk/umbrello.git
2. checkout branch release/25.04
3. enter checked out directory
3. run `tools/lint-xmi-files models/diagrams/class`

OBSERVED RESULT
The tools started in 3. prints out 

models/diagrams/class/all-elements.xmi:28: element Model: validity error : Syntax of value for attribute xmi.id of Model is not valid
models/diagrams/class/all-elements.xmi:32: element DataType: validity error : Syntax of value for attribute xmi.id of DataType is not valid
models/diagrams/class/all-elements.xmi:60: element Interface: validity error : Syntax of value for attribute xmi.id of Interface is not valid
models/diagrams/class/all-elements.xmi:62: element TemplateParameter: validity error : Syntax of value for attribute namespace of TemplateParameter is not valid
models/diagrams/class/all-elements.xmi:129: element Model: validity error : Syntax of value for attribute xmi.id of Model is not valid
models/diagrams/class/all-elements.xmi:132: element Model: validity error : Syntax of value for attribute xmi.id of Model is not valid
models/diagrams/class/all-elements.xmi:135: element Model: validity error : Syntax of value for attribute xmi.id of Model is not valid
models/diagrams/class/all-elements.xmi:138: element Model: validity error : Syntax of value for attribute xmi.id of Model is not valid
models/diagrams/class/all-elements.xmi:30: element Package: validity error : IDREFS attribute namespace references an unknown ID "Logical"
models/diagrams/class/all-elements.xmi:30: element Package: validity error : IDREFS attribute namespace references an unknown ID "View"
models/diagrams/class/all-elements.xmi:45: element Class: validity error : IDREFS attribute namespace references an unknown ID "Logical"
models/diagrams/class/all-elements.xmi:45: element Class: validity error : IDREFS attribute namespace references an unknown ID "View"
models/diagrams/class/all-elements.xmi:46: element Enumeration: validity error : IDREFS attribute namespace references an unknown ID "Logical"
models/diagrams/class/all-elements.xmi:46: element Enumeration: validity error : IDREFS attribute namespace references an unknown ID "View"
models/diagrams/class/all-elements.xmi:51: element Package: validity error : IDREFS attribute namespace references an unknown ID "Logical"
models/diagrams/class/all-elements.xmi:51: element Package: validity error : IDREFS attribute namespace references an unknown ID "View"
models/diagrams/class/all-elements.xmi:67: element Class: validity error : IDREFS attribute namespace references an unknown ID "Logical"
models/diagrams/class/all-elements.xmi:67: element Class: validity error : IDREFS attribute namespace references an unknown ID "View"
models/diagrams/class/all-elements.xmi:72: element Dependency: validity error : IDREFS attribute namespace references an unknown ID "Logical"
models/diagrams/class/all-elements.xmi:72: element Dependency: validity error : IDREFS attribute namespace references an unknown ID "View"

EXPECTED RESULT
The errors should not be shown
 
SOFTWARE/OS VERSIONS
Operating System: openSUSE Leap 15.6
KDE Plasma Version: 5.27.11
KDE Frameworks Version: 5.115.0
Qt Version: 5.15.12

ADDITIONAL INFORMATION
According to https://www.liquid-technologies.com/Reference/Glossary/DTD_Datatypes_ID.html there are some limitations for valid ID and IDREFS values:  

    It must conform to the EBNF for "Name". In simple terms this means a "Name" has to start with a letter or ':' or '_'. The rest of the characters must be numbers, letters ':', '_', '-', or '.' it can not contain any spaces.

For example, since “Logical View” is used here as the value for the 'xmi.id' attribute, the problem is that the value contains spaces, which is not permitted.
Other examples are:

    <UML:Model stereotype=“folder” ... xmi.id=“Use Case View” name=“Use Case View”>
    <UML:Model stereotype=“folder” ... xmi.id=“Component View” name=“Component View”>
    <UML:Model stereotype=“folder” ... xmi.id=“Deployment View” name=“Deployment View”>
    <UML:Model stereotype=“folder” ... xmi.id=“Entity Relationship Model” name=“Entity Relationship Model”>

The problem with IDREFS occurs with references that contain spaces, which occurs, for example, with the 'namespace' attribute as shown below:

      <UML:Package stereotype="folder" namespace="Logical View" ... " xmi.id="Datatypes" name="Datatypes">