Custom Condition output from Agent with Upper Case X: instead of Lower Case x:
The issue is that when you create a Custom Condition such as x:CONDITION1000 it is output from the Agent with an Upper Case X:
The problem we have run into is that if you validate the localhost:5000/current Streams output against our Custom Streams Schema DevicesCustomDataStreams.xsd (which extends MTConnectStreams_1.3.xsd) it fails to validate due to the upper case X:. If we just change the upper case X to lowercase x then it will validate. We have tried to modify our DevicesCustomDataStreams.xsd to handle this but have not found a successful solution.
This issue appears to have appeared in the Agent around version 1.8. Prior to that the streams output was x:CONDITION1000.
Devices.xml: DataItem category="CONDITION" id="Condition1000" type="x:CONDITION1000" name="n.Condition1000"
Streaming Output: Normal dataItemId="Condition1000" name="n.Condition1000" sequence="52" timestamp="2024-12-20T20:50:34.551Z" type="X:CONDITION1000"
I'll check this out in the agent. It should not change the namespace letter to upper case. Can you upload the Device.xml so I can reproduce?
MTConnectStreams with Custom Condition.zip
It would not let me attach a .XML file so I zipped up the Devices.xml and the Streams output and attached.
I will begin looking into this and get back. I think it should be an easy correction.
The current pattern for the data item type extension is: '[a-ln-z][a-z]*:[A-Z_0-9]+'
As you pointed out, this does not allow for uppercase namespace patterns. We can change it to: '[a-ln-zA-Z][a-zA-Z]*:[A-Z_0-9]+
I will also see if this can be done historically.
I'll also mention this is the schema development section since it is generated from the XMI.
See https://github.com/mtconnect/standard_doc_generator/issues/3