Identifiers / FQN

Der dv Configurator verwendet eine Art NameSpace Konzept außerhalb der XML Definition - die Fully Qualified Names (FQN) - um Modellelemente eindeutig zu adressieren.

Fully Qualified Name (FQN)

Der vollqualifizierte Name dient zur eindeutigen Identifikation jedes Model Elements und ergibt sich aus der BAUM Struktur im XML Dokument. Das XML Schema prüft nicht auf Korrektheit der FQN, die macht erst die API bei Aufruf entsprechender Funktionen und gibt ggf. Fehlermeldung zusammen mit der Liste der bekannten FQN zurück.

Alle Nodes, die im XML ein required-Attribute ‘title’ haben, werden mit einem Punkt ‘.’ verkettet. Der Root Knoten wird mit PRODUCT angesprochen.

Beispiel

Das Produkt “Stuhl” hat ein Feature “Armlehne”, dass ein Unterfeature “Bezug” in einer OneOf Gruppe (ohne title) hat und darin das enum-Attribut “Art” und darin das Element “Stoff”.

Als XML Definition sieht das so aus:

<product title="Stuhl">
  <feature title="Armlehne">
    <group type="OneOf">
      <feature title="Bezug">
        <enum title="Art">
          <elem>Stoff<elem>
          <elem>...</elem>
        </enum>
      </feature>
      <feature title="...">
    </group>
  </feature>
</product>

Der Attributwert ‘Stoff’ kann jetzt über PRODUCT.Stuhl.Bezug.Art.Stoff eindeutig angesprochen werden, das Attribut PRODUCT.Stuhl.Bezug.Art kann ebenso über den FQN angepsrochen werden.

Begrenzung der FQN: Intern werden Modellelemente über Buchhalter-Funktionen getrackt, dort findet auch die FQN Identifikation statt. Sprachelemente, die lediglich Regeln zwischen Modellelementen darstellen (z.B. Group, Constraint sowie Arithmetische oder Boolsche Ausdrücke), werden nicht durch Buchhalter abgebildet und können entsprechend nicht über FQN angesprochen werden.

Qualified Name

Kurznotation, die in der XML Definition als Identifizierer in Boolschen oder Arithmetischen Ausdrücken verwendet werden kann, z.B. ‘Bezug.Art.Stoff’. Intern wird der FQN der referenzierenden Ebene vorangestellt, um den FQN des Ziels zu ermitteln. Die Verwendung ist gedacht für Definition der Constraints, um die länglichen Kettenausdrücke zu reduzieren.