Zusätzliche Funktionen von Windchill > Serviceinformationsverwaltung > Konfigurationshandbuch > Attribute konfigurieren > Attributsätze definieren
  
Attributsätze definieren
AttributeSet-Konfigurationsdateien
Die Markup-Definition für die AttributeSet-Datei ermöglicht das Definieren des include- oder exclude-Standardverhaltens für die einzelnen Attributklassen. Die AttributeSet-Konfigurationsdateien befinden sich hier:
<Windchill-path>\codebase\com\ptc\arbortext\windchill\siscore\attset\xml
Wenn Sie einen Attributsatz in einer Konfigurationsdatei definieren, stellen Sie sicher, dass Sie alle Attribute eines bestimmten Typs in einer Gruppe zusammenfassen.
Es gibt mehrere verfügbare Konfigurationsdateien:
localizable_attset.xml
Definiert den Attributsatz, der zur Übersetzung in einer XLIFF-Datei gesendet werden soll. Beispiel: Zwei Abschnitte der Datei identifizieren das Attribut name:
<Type name="com.ptc.sis.Base">
<Attribute action="include" name="name"/>
<Attribute action="include" name="organizationName"/>
<Attribute action="include" name="number"/>
</Type>
<Type name="com.ptc.arbortext.windchill.partlist.PartList">
<Attribute action="include" name="name"/>
</Type>
manifest_attset.xml
Definiert einen Attributsatz, der als Metadaten im Manifest gesendet werden soll. Ein Abschnitt der Datei identifiziert z.B. die Attribute für Teilelisten:
<Type name="com.ptc.arbortext.windchill.partlist.PartList">
<Attribute action="include" name="name" />
<Attribute action="include" name="organizationName" />
<Attribute action="include" name="number" />
<Attribute action="include" name="versionIdentifer.versionId" />
<Attribute action="include" name="iteration" />
<Attribute action="include" name="thePersistInfo.modifyStamp" />
<Attribute action="include" name="thePersistInfo.createStamp" />
<Attribute action="include" name="type" />
</Type>
publishable_attset.xml
Definiert den Attributsatz, der an Arbortext Publishing Engine als Metadaten für die Publizierung gesendet werden soll. Ein Abschnitt der Datei identifiziert z.B. die Attribute für eine Publikationsstruktur:
<Type name="com.ptc.sis.PsRoot">
<Attribute action="include" name="lifeCycleState" type="enum"
token="wt.lifecycle.State">
</Attribute>
<Attribute action="include" name="thePersistInfo.modifyStamp" />
<Attribute action="include" name="orgid" />
<Attribute action="exclude" name="securityLabels.internalValue" />
<Attribute action="exclude" name="view" />
<Attribute action="include" name="name" />
<Attribute action="exclude" name="lineNumber" />
<Attribute action="exclude" name="quantityAmount" />
<Attribute action="exclude" name="quantityUnit" />
<Attribute action="exclude" name="traceCode" />
<Attribute action="exclude" name="state.state" />
<Attribute action="include" name="thePersistInfo.modifyStamp" />
<!-- don't remove. It is used in downstream -->
<Attribute action="include" name="thePersistInfo.updateStamp" />
<!-- don't remove. It is used in downstream -->
</Type>
Aufzählungstypattribute von Windchill werden als Metatadaten für das Objekt publiziert. Im folgenden Beispiel ist der Aufzählungstyp der Schlüssel ”INWORK”, während der Wert In Work der Name ist:
<Property token="lifeCycleState">
<Value key="INWORK">In Work</Value>
</Property>
Im Dateiauszug spiegelt das identifizierende Attribut den Namen und den Aufzählungstyp für lifeCycleState wider, wobei das zugeordnete token-Attribut tatsächlich den vollständigen Java-Klassennamen für den Aufzählungstyp angibt (in diesem Fall wt.lifecycle.State).
Sie können Attribute für die Teileklassifikationskategorie angeben. In diesem Fall sind Kind-Klassifikationsattribute automatisch ein- oder ausgeschlossen. Sie können das primäre Klassifikationsattribut selbst ausschließen, um alle Kind-Attribute auszuschließen, die der Klassifikation zugeordnet sind. Weitere Informationen über Klassifikationsattribute finden Sie unter Teile in Windchill klassifizieren.
* 
Ändern oder entfernen Sie in der Datei publishable_attset.xml keine include-Attributaktionen für thePersistInfo.modifyStamp und thePersistInfo.updateStamp. Diese werden in der Datei angegeben und in Paketen für Arbortext Content Delivery verwendet.
Wenn Sie einen benutzerdefinierten Untertyp implementieren, müssen Sie diese Aussagen der Spezifikation hinzufügen.
referencedObjects_attset.xml
Definiert einen Attributsatz, der andere Objekte in Windchill referenzieren soll, damit diese in referencedObjects.xml einbezogen werden. Beispielsweise identifiziert ein Bereich der Datei die Attribute für dynamische Dokumente (ein Untertyp von EPMDocuments):
<Type name="wt.epm.EPMDocument">
<Attribute action="include" name="missingDependents" />
<Attribute action="include" name="placeHolder" />
<Attribute action="include" name="revisionNumber" />
<Attribute action="include" name="derived" />
<Attribute action="include" name="name" />
<Attribute action="include" name="number" />
<Attribute action="include" name="CADName" />
<Attribute action="include" name="docType" />
<Attribute action="include" name="docSubType" />
<Attribute action="include" name="authoringApplication" />
<Attribute action="include" name="versionIdentifer.versionId" />
<Attribute action="include" name="thePersistInfo.modifyStamp" />
<Attribute action="include" name="thePersistInfo.createStamp" />
<Attribute action="include" name="iteration" />
<Attribute action="include" name="type" />/Type>
Ein Attribut, das ein anderes Objekt referenziert, muss explizit festgelegt werden, um als Referenzattribut verwendet zu werden.
publishinfo_attset.xml
Definiert einen Satz Attribute, die in der Payload-Datei publishinfo.xml eingeschlossen oder ausgeschlossen werden. Diese gehört zur Servicestruktur, die publiziert wird. Standardmäßig definiert die Datei beispielsweise, dass Publikations- und Informationsstrukturen (identifiziert durch ihren Typ) den Namen, die Nummer und den Organisationsnamen für die publizierte Struktur beinhalten:
Type name="com.ptc.sis.PsRoot">
<Attribute action="include" name="name" />
<Attribute action="include" name="number" />
<Attribute action="include" name="orgName" />
</Type>
<Type name="com.ptc.sis.IsRoot">
<Attribute action="include" name="name" />
<Attribute action="include" name="number" />
<Attribute action="include" name="orgName" />
</Type>
Sie können angepasste Versionen dieser Dateien verwalten, indem Sie den Empfehlungen in Setting Up a Directory Structure for Managing Customized Files and Text Tailoring (Verzeichnisstruktur für verwaltete angepasste Dateien und Textanpassung einrichten) und Best Practices for Customizing Files Supplied by PTC (Optimale Vorgehensweisen für die Anpassung von Dateien aus PTC Bereitstellung) folgen.
AttributeSet-Aktualisierungsbefehl
Änderungen, die an einer Attributsatzdatei vorgenommen werden, werden möglicherweise nicht sofort geladen, z.B. wenn Sie auf die Ausführung eines aktualisierten Publizierjobs warten. Nachdem Sie eine Konfigurationsdatei eines Attributsatzes geändert haben, führen Sie einen Server-Neustart in der Windchill Shell durch, damit die Änderungen wirksam werden.
Wenn ein Windchill Neustart nicht sofort möglich ist, können Sie den Cache stattdessen manuell löschen:
1. Öffnen Sie ein Windchill Eingabefenster.
2. Geben Sie den folgenden Befehl ein:
windchill com.ptc.arbortext.windchill.publisher.cmdline.
CleanCacheAttibuteSet
Der Befehl löscht den Cache, und die Änderungen werden schneller verarbeitet.
Windchill Attributkategorien
LWCIBAAttDefinition – Instanzbasierte Attribute oder IBAs
LWCHardAttDefinition – Modellierte oder Hard-Attribute
LWCLogicalAttDefinition – Logische Attribute
LWCNonPersistedAttDefinition – Nicht persistente Attribute
LWCFlexAttDefinition – Soft-Attribute (zuvor als Flex-Attribute bezeichnet)
LWCAttributeSetAttDefinition – Attributsätze
Auf Strukturen anwendbare Typattribute
Die folgende Tabelle enthält eine Liste mit anpassbaren Typattributen:
Name und Typ
Logische Form (nicht vollständiger Typname)
Beschreibung
Teil, Strukturknoten
wt.part.WTPart
Teil (modelliert)
Informationsbasis, Strukturknoten
com.ptc.sis.Base
Von WTPart abgeleiteter abstrakter Basistyp für alle Publikationsstruktur- und Informationsstrukturobjekte
Bereichsbasis, Strukturknoten
com.ptc.sis.BaseDiv
Abstrakte Basisklasse für Bereichstypen zur Verwendung in Publikationsstruktur und Informationsstruktur
Publikationsstruktur, Strukturknoten
com.ptc.sis.PsRoot
Stammobjekt der Publikationsstruktur
Publikationsbereich, Strukturknoten
com.ptc.sis.PsSection
Bereiche oder Abschnitte einer Publikationsstruktur
Informationsstruktur, Strukturknoten
com.ptc.sis.IsRoot
Stammobjekt der Informationsstruktur
Informationsgruppe, Strukturknoten
com.ptc.sis.IsGroup
Bereich oder Abschnitt der Informationsstruktur
Inhaltsbasis, Strukturknoten
com.ptc.arbortext.sis.Content
Abstrakte Basis von Inhaltsreferenzen und besonderen Knoten
Mappe, referenzierender Knoten
com.ptc.sis.ContentRef
Generische Referenz auf Inhaltsdateien
Abbildungsmappe, referenzierender Knoten
com.ptc.sis.IllustrationRef
Referenz auf ein dynamisches Grafikdokument
Teilelistenmappe, referenzierender Knoten
com.ptc.sis.PartsListRef
Referenz auf Teilelistenobjekt
Textmappe, referenzierender Knoten
com.ptc.sis.TextualContentRef
Referenz auf ein dynamisches Dokument (XML, PDF, Text usw.)
Besondere Basis, Strukturknoten
com.ptc.sis.PsSpecial
Abstrakte Basis, die generierte Textmarkierungen darstellt
Inhaltsverzeichnis, Strukturknoten
com.ptc.sis.PsToc
Eine Markierung in einer Publikationsstruktur, die angibt, wo ein Inhaltsverzeichnis angezeigt werden würde
Index, Strukturknoten
com.ptc.sis.PsIndex
Eine Markierung in einer Publikationsstruktur, die angibt, wo ein Index angezeigt werden würde
Informations-Verwendungs-Link, referenziertes Objekt
com.ptc.sis.BaseUsageLink
Link zwischen zwei Basisknoten zum Erstellen von Windchill Service Information Manager Strukturen (modelliert)
Teileverwendungs-Link, referenziertes Objekt
wt.part.WTPartUsageLink
Link zwischen zwei WTPart-Knoten zum Erstellen von Strukturen (modelliert)
Teileliste, referenziertes Objekt
com.ptc.arbortext.windchill.partlist.PartList
Teilelistencontainer für Teilelistenelemente (modelliert)
Teilelistenelement, referenziertes Objekt
com.ptc.arbortext.windchill.partlist.PartListItem
Teilelistenelement, das mit einem tatsächlichen Teil (modelliert) verknüpft ist
EPMDocument, referenziertes Objekt
wt.epm.EPMDocument
Jedes EPMDocument. Basistyp von DynamicDocument (modelliert).
DynamicDocument, referenziertes Objekt
com.ptc.ptcnet.DynamicDocument
Dynamisches Arbortext Dokument mit Text- oder Grafikinhalt
Xliff Link, referenziertes Objekt
com.ptc.sis.XliffLink
Link zu Übersetzungsdokument
AttributeSet-Element
Definiert die Standardaktion für alle Objektattribute oder bestimmte Klassen von Attributen. Type-Kindelemente ermöglichen Überschreibungen des Standardverhaltens von Persistable-Typen.
<!ELEMENT AttributeSet ( Type* )>
<!ATTLIST AttributeSet
default (include | exclude) #IMPLIED
hard (include | exclude) #IMPLIED
soft (include | exclude) #IMPLIED
iba (include | exclude) #IMPLIED
logical (include | exclude) #IMPLIED
classification (include | exclude) #IMPLIED
nonPersisted (include | exclude) #IMPLIED
set (include | exclude) #IMPLIED
>
Die Attribute des AttributeSet-Elements sind wie folgt definiert:
default
Die Standardaktion für alle Attribute, die nicht eingeschlossen sind oder durch spezifischere Tests ausgeschlossen werden.
hard
Die Standardaktion für alle hard-Attribute (LWCHardAttDefinition), die nicht eingeschlossen sind oder durch spezifischere Tests ausgeschlossen werden.
soft
Die Standardaktion für alle soft-Attribute (LWCFlexAttDefinition), die nicht eingeschlossen sind oder durch spezifischere Tests ausgeschlossen werden.
iba
Die Standardaktion für alle iba-Attribute (LWCIBAAttDefinition), die nicht eingeschlossen sind oder durch spezifischere Tests ausgeschlossen werden.
logical
Die Standardaktion für alle logical-Attribute (LWCLogicalAttDefinition), die nicht eingeschlossen sind oder durch spezifischere Tests ausgeschlossen werden.
classification
Standardaktion für alle classification-Attribute, die nicht eingeschlossen sind oder durch spezifischere Tests ausgeschlossen werden. Wenn nicht vorhanden, wird der Wert des Attributs iba verwendet. Unter Klassifikationsattribute finden Sie weitere Informationen über diese Attribute.
nonPersisted
Die Standardaktion für alle nonPersisted-Attribute (LWCNonPersistedAttDefinition), die nicht eingeschlossen sind oder durch spezifischere Tests ausgeschlossen werden.
set
Die Standardaktion für alle set-Attribute (LWCAttributeSetAttDefinition), die nicht eingeschlossen sind oder durch spezifischere Tests ausgeschlossen werden.
Hierzu ein Beispiel:
<AttributeSet xmlns="http://www.ptc.com" default="exclude"
iba="include" soft="include" logical="include">
Type-Element
Mit dem Type-Element können Sie die einzuschließenden (include) oder auszuschließenden (exclude) Windchill Attribute für jedes Objekt angeben, das die Persistable-Schnittstelle implementiert; dies ermöglicht das Lesen und Schreiben von Objekten aus der bzw. in die Datenbank. Es gibt modellierte (Hard-)Typen oder Untertypen, die auf dem modellierten Typ oder einem anderen Untertyp basieren. Untertypen werden mit dem Typ- und Attribut-Manager oder mit Laderdateien erstellt und verwaltet.
<!ELEMENT Type ( Attribute* )>
<!ATTLIST Type
name CDATA #REQUIRED
token NMTOKENS #IMPLIED
default (include | exclude) #IMPLIED
>
Die Attribute des Type-Elements sind wie folgt definiert:
name
Die logische Form eines Soft-Type oder modellierten Typs. Klassifikationsattribute werden mit name-Werten identifiziert, die mit @ beginnen.
token
Ein optionaler Name oder eine Sammlung von Namen, mit denen diesem Typ Semantik zugeordnet werden kann.
default
Die Standardaktion, alle Attribute dieses Typs, für die keine spezifischere Einstellung vorhanden ist, auszuschließen oder einzubeziehen.
Alle Typen werden durch eine als Logical Form (oder auch LogicalID) bezeichnete Typnamen-Zeichenfolge identifiziert. Die logische Form muss auf Site-Ebene eindeutig sein, da sie den Typ eindeutig identifiziert. Beispiel (ignorieren Sie den Zeilenumbruch):
com.ptc.ptcnet.DynamicDocument =>
WCTYPE|wt.epm.EPMDocument|com.ptc.ptcnet.DynamicDocument
wt.part.WTPart => WCTYPE|wt.part.WTPart
Das erste Beispiel ist der Name des DynamicDocument-Untertyps von EPMDocument, das zweite der Name des modellierten Typs wt.part.WTPart. Die logischen Formen sind der externen Form des Typs zugeordnet. Im Fall eines modellierten Typs wird dem Java-Klassennamen des Objekts das Präfix WCTYPE| vorangestellt. Handelt es sich um einen Untertyp, besteht der Name aus dem Namen des Basistyps (Soft oder Hard), gefolgt von einem senkrechten Strich (|) und dem benutzerdefinierten Typnamen. Die logische Form ist normalerweise mit dem letzten Segment der externen Form identisch. Sie können jedoch eine eigene logische Form definieren, vorausgesetzt, diese ist eindeutig.
Hierzu ein Beispiel:
<Type name="com.ptc.sis.PsRoot">
Attribute-Element
Das Attribute-Element gibt im Wesentlichen an, ob ein bestimmtes Windchill Attribut in den Attributsatz eingeschlossen (include) oder daraus ausgeschlossen (exclude) werden soll. Es wird auch verwendet, um Semantik für ein Attribut oder seine Werte zu definieren.
<!ELEMENT Attribute ( Choice* )>
<!ATTLIST Attribute
name CDATA #REQUIRED
token NMTOKENS #IMPLIED
type CDATA #IMPLIED
action (include | exclude) #REQUIRED
>
Die Attribute des Attribute-Elements sind wie folgt definiert:
name 
Der Attributname in logischer Form.
token 
Ein optionaler Name oder eine Sammlung von Namen, mit denen diesem Attribut Semantik zugeordnet werden kann.
type
Eine Zeichenfolge, die den Attribut-Typ angibt, der einbezogen oder ausgeschlossen werden soll. Der einzige Wert, der für type unterstützt wird, ist reference.
Wenn Sie name und Typ des Attributs als reference angeben, wird der Attributwert als referenziertes Objekt festgelegt.
action 
Die für dieses Attribut auszuführende Aktion.
Sofern die Aktion angegeben wird, ist dies die Einstellung mit der höchsten Priorität für dieses Attribut. Das Attribut action kann weggelassen werden; in diesem Fall steuert die Einstellungen mit der nächsthöheren Priorität den Einschluss dieses Attribut in den Attributsatz.
Attribute sind entweder modellierte (Hard-) Typen, oder es sind Soft-Attribute. Soft-Attribute werden mit dem Typ- und Attribut-Manager oder mit Laderdateien erstellt und verwaltet. Alle Attribute werden durch eine als Logical Form bezeichnete Attributnamen-Zeichenfolge identifiziert. Die logische Form muss für den Objekttyp eindeutig sein, da sie das Attribut für diesen Typ eindeutig identifiziert. Im folgenden Beispiel wird die logische Form eines Attributs seiner externen Form zugeordnet:
name => MBA|masterReference^WCTYPE|wt.part.WTPartMaster~MBA|name
name => MBA|masterReference^WCTYPE|wt.doc.WTDocumentMaster~MBA|name
filename => MBA|masterReference^WCTYPE|wt.epm.EPMDocumentMaster~MBA|CADName
fileName => NPA|filename
Die Zeichenfolge name für einen bestimmten Typ identifiziert nur ein Attribut eindeutig. Das erste Beispiel identifiziert ein modellbasiertes Attribut (MBA) des wt.part.WTPart-Typs. Das zweite Beispiel identifiziert ein Attribut des wt.doc.WTDocument-Typs. Das dritte Beispiel ist das filename-Attribut des wt.epm.EPMDocument-Typs. Im letzten Beispiel wird ein Alias für das vorherige Attribut deklariert. Die Objekttypen sind nicht in der externen Form des Attributs enthalten.
Hierzu ein Beispiel:
<Attribute action="include" name="lifeCycleState" token="STATE">
Wenn Sie den Namen des Attributs und seines Typs unter name als reference angeben, wird der Attributwert als referenziertes Objekt festgelegt, und der URI wird in den Daten transformiert, damit das Objekt im Arbortext Content Delivery gefunden werden kann.
Attribute action="include" name="PartListVersionRef" type=”reference”
Choice-Element
Das Choice-Element definiert einen möglichen Wert für ein Attribut. Es hat keine Auswirkung darauf, ob das Attribut in den erstellten Attributsatz eingeschlossen oder aus diesem ausgeschlossen wird. Es definiert einen Wertebereich zur Downstream-Verarbeitung. Außerdem kann einem Wert ein Token oder eine Token-Liste zugeordnet werden, um diesem Wert in einem Downstream-Prozess spezielle Semantik zuzuweisen. Der Inhalt des Choice-Elements ist eine Zeichenfolge, die einen möglichen Wert für das Attribute-Elternelement darstellt.
<!ELEMENT Choice (#PCDATA) >
<!ATTLIST Choice
token NMTOKENS #IMPLIED
>
Das token-Attribut des Choice-Elements ist als optionaler Name oder eine Sammlung von Namen definiert, mit denen diesem Wert Semantik zugeordnet werden kann.
Hier ein Beispiel, das das Attribute-Beispiel erweitert:
<Attribute action="include" name="lifeCycleState" token="STATE">
<Choice name="Accepted" />
<Choice name="Approved" />
<Choice name="Closed" />
<Choice name="In Work" token="INWORK" />
<Choice name="Obsolete" token="OBSOLETE" />
<Choice name="Open" token="OPEN" />
</Attribute>
Einschluss in den Attributsatz berechnen
Die AttributeSet-Konfigurationsdatei ist so konzipiert, dass sie den Attributsatz mit expliziten Aktionen auf verschiedenen Ebenen definiert. Sie hat die Form Element.Attribut_des_Element. Folgende Ebenen werden in absteigender Rangfolge unterstützt.
Attribute.action: Ein bestimmtes Attribut (Attribute.name) eines bestimmten Objekttyps (Type.name)
Type.default: alle Wertattribute eines Objekttyps (Type.name)
AttributeSet.hard, AttributeSet.soft, AttributeSet.iba usw.: alle Attribute einer bestimmten Klasse
AttributeSet.default: alle Wertattribute
Generell gilt: Je spezifischer eine Einstellung ist, desto höher ist die Rangfolge dieser Aktionseinstellung. Wenn eine Aktion für ein Attribut auf einer bestimmten Ebene weggelassen wird, bedeutet die, dass die nächsthöhere Rangfolgenebene daraufhin überprüft werden muss, ob sie eine explizite Aktion für dieses Attribut enthält. Die Suche nach einer expliziten Aktion wird beendet, sobald eine solche Aktion gefunden wird. Wenn keine explizite Aktion gefunden wird, wird das Standardverhalten verwendet.
Das Systemstandardverhalten hängt vom Kontext ab. Für die Lokalisierung ist z.B. ein anderes Standardattribut festgelegt als für die Serialisierung. Folgende Hard-Attribute für Publikationsstrukturen werden eingeschlossen:
name
state.state
versionIdentifier.versionId
Beispiel: Beim Serialisieren der Publikations- oder Informationsstruktur in Daten werden gemäß dem Standardverhalten alle soft-, iba- und logical-Attribute sowie die Hard-Attribute eingeschlossen.
Attribute serialisieren, die andere Objekte referenzieren
Um die Metadaten für Referenzen auf Objekte in den Daten anzugeben, müssen Sie das name- und das type-Attribut des Attribute-Elements angeben. Hierzu ein Beispiel:
<Type default="include"
name="com.ptc.arbortext.windchill.siscore.serviceeff.ServiceEffectivity">
<Attribute action="include" name="effContextRef" type="reference" />
</Type>
Die referenzierten Objektattribute werden in eine referencedObjects.xml in den Daten platziert. Die Form der Referenz wird vom Windchill-Identifier in einen URI geändert, der zum Suchen des Objekts verwendet werden kann, nachdem es in Arbortext Content Delivery publiziert wurde.
Das Attribut, das ein Objekt referenziert, wird in den Daten in einemProperty-Element dargestellt, wobei das token-Attribut verwendet wird, um es zu identifizieren. Das Value-Element hat ein ref-Attribut, das die Objektreferenz in einen URI für die Daten umwandelt, die in einem Paket publiziert werden. Mehrere Attribute haben mehrere Value-Einträge in den Daten.
AttributeSet-API
Eine AttributeSet-Konfigurationsdatei identifiziert einen Satz Attribute für ein Windchill Objekt. Der Satz ändert sich in Abhängigkeit vom ausgewählten Objekt. Es sind nicht für alle Objekte des gleichen Typs Werte für alle Attribute des Satzes definiert, der Satz ist jedoch identisch. Konfigurationen sind kontextspezifisch. Sie müssen z.B. sowohl das localizable- als auch das publishable- Attribut mit verschiedenen XML-Dateien konfigurieren.
Die AttributeSet-Klasse ist die API für eine oder mehrere AttributeSet-Konfigurationsdateien. Die Factory-Methode getAttributeSet lädt Dateien, die dem Kontextnamen ergänzt um die Dateierweiterung .xml entsprechen, gemäß der Definition in der Liste der AttributeSet-Konfigurationsdateien.
public class AttributeSet {

// Load one or more configuration files for a named context
and return an AttributeSet object
public static AttributeSet getAttributeSet(String context);

// Get the context for this AttributeSet
public String getContext();

// Test if a type/attribute is a member of this AttributeSet
public boolean isMember(String typeLogicalForm, String logicalForm);
public boolean isMember(TypeIdentifier type, AttributeTypeIdentifier att);

// Get the set of attributes and their types for an persistable object type.
public Map<String, AttributeTypeIdentifier> getAttributes
(String typeLogicalForm);
public Map<String, AttributeTypeIdentifier> getAttributes
(TypeIdentifier type);

// Get attribute values for a Persistable. Mapped object may be an array.
public Map<String, Object> getAttributeValues(Persistable wtobject);

}