2017-08-01 107 views
5

Początkowo miałem różne definicje XSD dla każdego zbioru XSD. Miałem przechowywany zestaw plików XML.Dynamiczna generacja XSLT na podstawie zmian w XSD

Po pewnym czasie trwania istnieją pewne zmiany w XSD definicji więc moja przechowywane XML jest nie więcej walidacja ponownie nowy XSD.

uzyskać pomoc muszę napisać XSLT i zrobić zmiany w moim przechowywanej XML do sprawdzania ponownie nowy XSD.

Teraz, w tym scenariuszu każdorazowo XSD zmiana, muszę napisać XSLT ręcznie jak mogę wygenerować ten XSLT dynamicznie.

Obecnie jestem w stanie porównać stare i nowe XSD i uzyskać listę jakie są zmiany wykorzystujące Microsoft.XmlDiffPatch DLL.

Na podstawie tych zmian należy wygenerować XSLT przy użyciu C#.

+0

Po uzyskaniu wartości Diff użyj [narzędzia Patch] (https://msdn.microsoft.com/en-us/library/aa302294.aspx). –

+0

To nie pomoże w tym przypadku. Ponieważ narzędzie Patch porównuje dwa XML i wprowadza zmiany w tych dwóch. Ale w moim przypadku muszę porównać dwa XSD i co kiedykolwiek zmiany w strukturze zgodnie ze zmianą trzeba zrobić w odpowiednim XML. W tym celu muszę napisać XSLT. –

Odpowiedz

0

Nie wiem, jakie jest twoje pytanie, ale myślę, że jest to technicznie możliwe.

Może być łatwiej po prostu napisać kod C#, który odczyta Xml, a następnie rozszerzy go i przywróci do pliku/database/dataStore.

+0

Zgodnie z moją wiedzą XSLT jest najlepszą opcją, a nie C#. –