Private OPC UA information-model preflight

OPC UA NodeSet Dependency & Namespace Auditor

Trace namespace indexes, defined models, RequiredModel dependencies, aliases, nodes, and references. Add a second NodeSet to reveal numeric namespace collisions and compare nodes by expanded namespace URI instead of file-specific indexes.

NodeSet2 XML input

Open one or two NodeSets

No primary NodeSet selected.

No comparison NodeSet selected.

Each XML document is limited to 16 MiB. DTDs and entities are rejected, external locations are never fetched, and all model data remains in this browser tab.

Paste or choose a primary NodeSet XML document.

Private by design: namespace URIs, model versions, nodes, references, identifiers, filenames, comparisons, and reports stay in this browser tab. Nothing is uploaded or fetched.

What the auditor checks

The bounded namespace-aware parser checks XML structure, the NodeSet namespace, duplicate or empty namespace URIs, ModelUri membership, model versions and dates, RequiredModel declarations, self/circular dependencies, aliases, NodeId and BrowseName namespace indexes, duplicate nodes, local parent/data-type/reference targets, duplicate references, and namespaces used without a defined or required model.

Why namespace indexes need expansion

Namespace index 0 always means the OPC UA namespace. Entries under NamespaceUris begin at index 1 and are local to that document. Two NodeSets can therefore use ns=2 for unrelated URIs. The comparison expands NodeIds to URI-plus-identifier keys before classifying added, removed, or changed nodes.

Missing nodes versus external dependencies

A reference into a namespace defined by this NodeSet is checked against its local node declarations. A reference into a declared RequiredModel is treated as external and is not falsely labeled missing. If a foreign namespace is used but no Model or RequiredModel accounts for it, the auditor reports missing dependency evidence.

Conformance and deployment boundary

This is a read-only structural preflight, not complete OPC UA conformance testing. It does not apply every XSD, information-model, namespace-metadata, version-resolution, datatype-encoding, ModellingRule, access/security, or companion-specification rule; merge files; generate code; connect to servers; or prove SDK/import compatibility. Confirm results with the official schema, the exact model release, a trusted SDK or modeling tool, and controlled integration testing.

Frequently asked questions

Is a different namespace index automatically an error?

No. Indexes are document-local. It becomes a comparison collision only when the same numeric index maps to different URIs; semantic comparison still uses the expanded URI.

Why is an unresolved external reference not an error?

A NodeSet normally references nodes supplied by required models in other files. The dependency declaration—not local duplication—is the evidence that makes that reference legitimate.

Does a clean report mean the model will import?

No. It means the supported dependency, namespace, identifier, and reference checks found no issue. Import behavior and full conformance remain the responsibility of the target toolchain.

Authoritative references

OPC UA Part 6 defines the normative Information Model XML schema rules, including NamespaceUris, Models, RequiredModel dependencies, and document-local indexes. The OPC Foundation publishes the current UANodeSet XML Schema and maintained official NodeSet repository.

Inspect PROFINET GSDML · Inspect EtherCAT ESI / SII · Browse industrial-automation tools