Wiem, że robiłem to już wcześniej, ale dzisiaj nie działa, ani nie mogę znaleźć niczego, co wyjaśniłoby, jak to zrobić. Może to być mój brak snu, ale podejrzewam gremliny.
Mam dokument XML i katalog pełen XSD, które go definiują. Jak ustawić Visual IDE tak, aby powiadamiało mnie o błędach walidacji, a następnie dostarcza inteligentną listę prawidłowych tagów i atrybutów w danym kontekście?
Co próbowałem:
- Dodałem XSD do projektu z dokumentem XML.
- Dodałem XSD do listy schematów XML (w pozycji menu XML / Schemas ...).
- Dodałem nawet atrybuty schemaLocation i noNamespaceSchemaLocation do dokumentu XML.
Program Visual Studio nadal nie rezygnuje z żadnych przydatnych informacji dotyczących debugowania ani edytowania. Próbowałem zarówno 2010, jak i 2008 (myślałem, że robiłem to wcześniej w 2008)
Aktualizacja: Poprosiłem innego programistę o wypróbowanie tego i dla niego też się nie udało. Wie, że zrobił to z innymi dokumentami XML i sprawił, że to zadziałało. Następnie pobrałem edytor Oxygen XML i działał dobrze na tych samych plikach XML i XSD, więc pliki wydają się być w porządku (lub Oxygen jest bardziej wybaczający / elastyczny.).
źródło
Nie musisz ręcznie kojarzyć plików w programie Visual Studio - automatycznie dopasuje plik XML do pliku XSD, jeśli oba są otwarte, a przestrzeń nazw jest poprawnie zdefiniowana.
Aby zdefiniować przestrzeń nazw:
W elemencie głównym pliku XML:
W elemencie schematu pliku XSD:
Uwaga dotycząca używania typów w schemacie, gdy masz targetNamespace
Ponieważ
targetNamespace
w swoim schemacie określasz a, wszelkie odniesienia do typów zdefiniowanych w schemacie będą musiały być poprzedzone przestrzenią nazw (dlatego dodaliśmyxmlns:this
atrybut w powyższym<xs:schema />
elemencie).źródło
Kolejnym punktem niepowodzenia jest „blokowanie” plików schematu systemu Windows 7… kliknij prawym przyciskiem myszy plik xsd na dysku, Właściwości> Ogólne, a jeśli jest zablokowany, pojawi się przycisk „Odblokuj”. Powodowało to niepowodzenie weryfikacji XML w VS2012.
źródło
Czy twój xsd zawiera atrybut
"targetNamespace"
/schema/@targetNamespace
podobny do przestrzeni nazw, do której odwołujesz się w xml?Przykłady:
XSD :
XML :
Zobacz też: XML / XSD Intellisense nie działa w programie Visual Studio 2010
źródło
Miałem ten sam problem, ale VS już poprawnie odwoływał się do mojego schematu. Okazuje się, że plik, który próbowałem zweryfikować, nie miał rozszerzenia „xml”. Dodano .xml na końcu mojej nazwy pliku i sprawdzanie poprawności zaczęło działać.
źródło