Code Monkey home page Code Monkey logo

Comments (16)

mpostol avatar mpostol commented on June 28, 2024 1

I agree it is a real problem where is the right place to report issues and discuss the fix options. Instead of classification wrong vs good, I propose useful vs official. Your proposal is not overlapping so it is a binary condition, but my proposal overlaps so it could lead to duplication.
There is no ideal solution, hence UA WG must decide and clarify procedures. I have no vote but my point is that the issue should stay open as long as the fix will be committed to the master branch - it could be long before the official version will be available. But it is only the developer point of view.
Anyway, according to your proposal let's continue the discussion on Mantis. So anyone interested is welcome to create the account on Mantis - fortunately, there is no need to be OPC Foundation member but be patient while looking for something relevant for you.

from ua-nodeset.

mpostol avatar mpostol commented on June 28, 2024

I have also reported it as a Mantis issue:

UADataType.Definition.Name wrong value

from ua-nodeset.

opcfoundation-org avatar opcfoundation-org commented on June 28, 2024

The text says "This field is only specified for nested DataTypeDefinitions" so the correct fix it is to delete the name from the NodeSet.

Modellers should ignore the Name field and use the BrowseName.

from ua-nodeset.

mpostol avatar mpostol commented on June 28, 2024

The same table says: The BrowseName of the DataType Node is used otherwise.

If the correct fix it is to delete the name from the NodeSet who is in charge to delete it from officially released NodeSet files? The element is required in the schema, so it must not be just removed from the XML file?! Unfortunately, the specification says something different.

  <xs:complexType name="DataTypeDefinition">
    <xs:sequence>
      <xs:element name="Field" type="DataTypeField" minOccurs="0" maxOccurs="unbounded"></xs:element>
    </xs:sequence>
    <xs:attribute name="Name" type="QualifiedName" use="required"></xs:attribute>
    <xs:attribute name="SymbolicName" type="SymbolicName" use="optional" default=""></xs:attribute>
    <xs:attribute name="IsUnion" type="xs:boolean" use="optional" default="false"></xs:attribute>
    <xs:attribute name="IsOptionSet" type="xs:boolean" use="optional" default="false"></xs:attribute>
    
    <!-- BaseType is obsolete and no longer used. Left in for backwards compatibility. -->
    <xs:attribute name="BaseType" type="QualifiedName" use="optional" default=""></xs:attribute>
  </xs:complexType>

My point is that we have two problems:

  1. The specification and xsd is inconsitent required versus This field is only specified...
  2. The content of all XML files has the wrong value - this attribute must be properly formatted.

I am not looking for advice on how to overcome it in the tool, but for a consistent solution instead. Good practice says that the issues may be closed after getting confirmation from the reporter.

from ua-nodeset.

opcfoundation-org avatar opcfoundation-org commented on June 28, 2024

Update Mantis issue with discussion:
https://apps.opcfoundation.org/mantis/view.php?id=4712

from ua-nodeset.

mpostol avatar mpostol commented on June 28, 2024

This discussion targets the content of this repository, i.e. xsd, xml stuff, but Mantis targets the spec. In this case, both are closely coupled so some harmonization is really required.
Because the Mantis issue recommends fixes requiring xsd and xml modifications I propose to close both issues (GitHub and Mantis) after the new version (errata, xml, xsd, etc.) has been released. It is important for developers that any tool (XML processing application, i.e. modelers, converters, servers, clients, etc. ) must apply a workaround and neglect this attribute.

from ua-nodeset.

opcfoundation-org avatar opcfoundation-org commented on June 28, 2024

This is wrong place for NodeSet issues.
The NodeSet is the specification and issues are tracked in Mantis by the WG.
The is a special Mantis project for NodeSet issues.

from ua-nodeset.

opcfoundation-org avatar opcfoundation-org commented on June 28, 2024

Change of plan:
Will change the DataType in Part 6 from QualifiedName to String.
This will make the existing NodeSets correct.

from ua-nodeset.

mpostol avatar mpostol commented on June 28, 2024

NOTE

The mentioned above issue

has bee closed with the note

Discussed in WG call. Decisions:
1) Keep schema the same; fix model compiler;
2) Change spec to make it consistent with schema;

Outstanding issue: how manage updates to released companion specifications.

and cloned to a new one

unfortunately, the discussion chain has been broken.

My concern is that this way the syntax problem will be replaced by a semantics problem. In practice, it means that the software logic must address it instead of document validator. I understand that the price is backward compatibility.

I have decided to release my software without this fix so the problem is not urgent for me anymore.

from ua-nodeset.

mpostol avatar mpostol commented on June 28, 2024

I will appreciate adding the text

UADataType.Definition.Name wrong value #22

to any commit targeting this issue. It will greatly improve the problem traceability.

from ua-nodeset.

opcfoundation-org avatar opcfoundation-org commented on June 28, 2024

Fixed files have been posted.

from ua-nodeset.

mpostol avatar mpostol commented on June 28, 2024

@opcfoundation-org thanks for info. I am trying to find any relevant changes but:

  1. In the ADI model Name="ExecutionCycleEnumeration"
<UADataType NodeId="ns=1;i=9378" BrowseName="1:ExecutionCycleEnumeration">
    <DisplayName>ExecutionCycleEnumeration</DisplayName>
    <References>
      <Reference ReferenceType="HasProperty">ns=1;i=13026</Reference>
      <Reference ReferenceType="HasSubtype" IsForward="false">i=29</Reference>
    </References>
    <Definition Name="ExecutionCycleEnumeration">
      <Field Name="IDLE" Value="0">
        <Description>Idle, no cleaning or acquisition cycle in progress</Description>
      </Field>
      ...
  1. In the UANodeSet schema name="Name" type="QualifiedName" use="required"
 <xs:complexType name="UADataType">
    <xs:complexContent>
      <xs:extension base="UAType">
        <xs:sequence>
          <xs:element name="Definition" type="DataTypeDefinition" minOccurs="0"></xs:element>
        </xs:sequence>
        <xs:attribute name="Purpose" type="DataTypePurpose" default="Normal"></xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="DataTypeDefinition">
    <xs:sequence>
      <xs:element name="Field" type="DataTypeField" minOccurs="0" maxOccurs="unbounded"></xs:element>
    </xs:sequence>
    <xs:attribute name="Name" type="QualifiedName" use="required"></xs:attribute>
    <xs:attribute name="SymbolicName" type="SymbolicName" use="optional" default=""></xs:attribute>
    <xs:attribute name="IsUnion" type="xs:boolean" use="optional" default="false"></xs:attribute>
    <xs:attribute name="IsOptionSet" type="xs:boolean" use="optional" default="false"></xs:attribute>
    
    <!-- BaseType is obsolete and no longer used. Left in for backwards compatibility. -->
    <xs:attribute name="BaseType" type="QualifiedName" use="optional" default=""></xs:attribute>
  </xs:complexType>
  1. I cannot find also any relevant changes in the logs chain.

Note:

  <xs:simpleType name="QualifiedName">
    <xs:restriction base="xs:string"></xs:restriction>
  </xs:simpleType>

Name="ExecutionCycleEnumeration" is valid against the schma but is not valid against the specyfication. According to the specyfication definition of the QualifiedName schould have additional restictions.

I will appreciate any more accurate information about what has been changed.

My concern is that the schema must be compliant with the specification but it is not.

Hope it helps.

from ua-nodeset.

opcfoundation-org avatar opcfoundation-org commented on June 28, 2024

Sorry for not being explicit:
ADI was updated in the v1.03 branch:
https://github.com/OPCFoundation/UA-Nodeset/blob/v1.03/ADI/Opc.Ua.Adi.NodeSet2.xml

That is the source for the file that is posted here:
https://opcfoundation.org/UA/schemas/ADI/1.1/

from ua-nodeset.

mpostol avatar mpostol commented on June 28, 2024

❗️

  • Showing with 6,291 additions and 4,614 deletions.
  • 44 changed files (not sure if all existing models have been changed)
  • cannot be merged to master
  • 1.03 has been already released? Next is 1.03.04 but following the Semantic Versioning 2.0.0 it should be 2.0
  • How this stuff is related to https://opcfoundation.org/UA/schemas/1.04/ that has been just posted?

My point is that as a result of this modification, a new restriction should be added to the schema as I proposed above.

Anyway, to coordinate our work, my plan is as follows:

1, try to figure out a migration path - how to apply all these changes (probably I need spec errata)
2. try to validate the new files against the semantics defined in Part 3, 5, and 6. using the [

Can you advise me what information in the xml file is best suited to be used for switching the syntax parser?

Many thanks for the help.

from ua-nodeset.

opcfoundation-org avatar opcfoundation-org commented on June 28, 2024

The older models were problematic because rebuilding them with 1.04 introduces other changes.
The 1.03 branch was updated with the old models built against the 1.03 nodeset for this reason.
You should not try to merge 1.03 into master. The ADI in that master should built against the latest NodeSet which is not the official release for ADI.

The WG decided that no changes to the schema or the nodeset would be made. Only that old models will be fixed.

from ua-nodeset.

mpostol avatar mpostol commented on June 28, 2024

To be honest I don't understand. Hopefully, WG knows much more and are able to predict precisely consequences. The only thing I understand is the necessity to change my plans to do nothing.
Many thanks for the cooperation. It seems that's all we can do now except closing this issue.

from ua-nodeset.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.