Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Rozpoznawanie zewnętrznych zasobów podczas przetwarzania XSLT
Artykuł
05.03.2024
Podczas przekształcania XSLT może wystąpić kilka razy, gdy może być konieczne rozwiązanie problemów z zasobami zewnętrznymi.
Korzystanie z klasy XmlResolver
Klasa służy do rozwiązywania XmlResolver problemów z zasobami zewnętrznymi. W poniższej tabeli opisano, kiedy XmlResolver występuje proces przetwarzania XSLT.
XSLT, zadanie
Do czego służy element XmlResolver
Skompiluj arkusz stylów.
Rozwiąż identyfikator URI arkusza stylów.
— i —
Rozpoznawanie odwołań identyfikatorów URI w dowolnych xsl:import elementach lub xsl:include .
Wykonaj arkusz stylów.
Rozwiąż identyfikator URI dokumentu kontekstowego.
— i —
Rozpoznawanie odwołań identyfikatorów URI w dowolnych funkcjach XSLT document() .
Metody Load i Transform obejmują przeciążenia, które przyjmują XmlResolver obiekt jako jeden z jego argumentów. Jeśli parametr XmlResolver nie zostanie określony, zostanie użyta wartość domyślna XmlUrlResolver bez poświadczeń.
Na poniższej liście opisano, kiedy można określić XmlResolver obiekt:
Jeśli proces XSLT musi uzyskać dostęp do zasobu sieciowego wymagającego uwierzytelniania, możesz użyć elementu XmlResolver z wymaganymi poświadczeniami.
Jeśli chcesz ograniczyć zasoby, do których może uzyskać dostęp proces XSLT, możesz użyć elementu XmlSecureResolver z poprawnym zestawem uprawnień. XmlSecureResolver Użyj klasy , jeśli musisz otworzyć zasób, którego nie kontrolujesz lub który jest niezaufany.
Jeśli chcesz dostosować zachowanie, możesz zaimplementować własną XmlResolver klasę i użyć jej do rozwiązywania problemów z zasobami.
Jeśli chcesz mieć pewność, że nie masz dostępu do żadnych zasobów zewnętrznych, możesz określić null argument XmlResolver .
Przykład
Poniższy przykład kompiluje arkusz stylów przechowywany w zasobie sieciowym. Obiekt XmlUrlResolver określa poświadczenia niezbędne do uzyskania dostępu do arkusza stylów.
// Create the credentials.
NetworkCredential myCred = new NetworkCredential(UserName,SecurelyStoredPassword,Domain);
CredentialCache myCache = new CredentialCache();
myCache.Add(new Uri("http://www.contoso.com/"), "Basic", myCred);
myCache.Add(new Uri("http://app.contoso.com/"), "Basic", myCred);
// Set the credentials on the XmlUrlResolver object.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = myCache;
// Compile the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("http://serverName/data/xsl/order.xsl",XsltSettings.Default, resolver);
' Create the credentials.
Dim myCred As NetworkCredential = New NetworkCredential(UserName, SecurelyStoredPassword, Domain)
Dim myCache As CredentialCache = New CredentialCache()
myCache.Add(new Uri("http://www.contoso.com/"), "Basic", myCred)
myCache.Add(new Uri("http://app.contoso.com/"), "Basic", myCred)
' Set the credentials on the XmlUrlResolver object.
Dim resolver As XmlUrlResolver = New XmlUrlResolver()
resolver.Credentials = myCache
' Compile the style sheet.
Dim xslt As XslCompiledTransform = New XslCompiledTransform()
xslt.Load("http://serverName/data/xsl/order.xsl", XsltSettings.Default, resolver)
Źródło tej zawartości można znaleźć w witrynie GitHub, gdzie można również tworzyć i przeglądać problemy i żądania ściągnięcia. Więcej informacji znajdziesz w naszym przewodniku dla współtwórców.
Opinia o produkcie
.NET
.NET
to projekt typu open source. Wybierz link, aby przekazać opinię:
Dowiedz się, jak używać statycznych i dynamicznych zasobów udostępnionych do tworzenia interfejsu użytkownika aplikacji wieloplatformowej platformy .NET (MAUI). Zobacz też, jak style mogą sprawić, że interfejs użytkownika będzie spójny i dostępny.