Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In den folgenden Themen finden Sie Informationen zu Lokalisierungsproblemen bei der Entwicklung benutzerdefinierter Adapter.
XSD-Probleme
Mithilfe des Adapterframeworks können Adapterentwickler Adaptereigenschaftenseiten mit XSD-Schemas (XML-Schemadefinition) implementieren.
Wenn ihr Adapter keine Globalisierungs- oder Lokalisierungsanforderungen hat, können Sie die XSD-Schemazeichenfolge in der Funktion IDynamicAdapterConfig:GetConfigSchema hartcodieren.
Wenn für Ihren Adapter eine Globalisierung oder Lokalisierung erforderlich ist, können Sie das XSD-Schema auf zwei Arten implementieren.
Verwenden Sie separate XSD-Dateien außerhalb des Binärcodes zur Entwurfszeit. Legen Sie den gesamten Text des Schemas als Manifestressource fest.
Ersetzen Sie dynamisch die Eigenschaftsnamen und -beschreibung der Ressource:
Fügen Sie jedem Element, das Sie lokalisieren möchten, eine _locID hinzu.
Verwenden Sie einen xpath, um alle Knoten des Schemas mit dem Attribut _locID zurückzuziehen.
Suchen Sie in den Ressourcen nach einer Zeichenfolge, die mit dem Wert der _locID indiziert ist.
Ersetzen Sie den Knotentext durch das Ergebnis.
Der folgende Code ist ein Beispiel für die zweite Option:
string mySchema = GetSchemaFromResource(“mySchema”);
string myLocalizedSchema = LocalizeSchemaDOM (mySchema, resourceManager);
// where…
protected string GetSchemaFromResource (string name)
{
Assembly assem = this.GetType().Assembly;
Stream stream = assem.GetManifestResourceStream(name);
StreamReader reader = new StreamReader(stream);
string schema = reader.ReadToEnd();
return schema;
}
protected XmlDocument LocalizeSchemaDOM (string schema, ResourceManager resourceManager)
{
XmlDocument document = new XmlDocument();
document.LoadXml(schema);
XmlNodeList nodes = document.SelectNodes
("/descendant::*[@_locID]");
foreach (XmlNode node in nodes)
{
string locID = node.Attributes["_locID"].Value;
node.InnerText = resourceManager.GetString(locID);
}
return document;
}