Saya tahu saya telah melakukan ini sebelumnya, tetapi tidak berhasil hari ini, saya juga tidak dapat menemukan tempat yang menjelaskan bagaimana melakukannya. Bisa jadi saya kurang tidur, tapi saya curiga gremlins.
Saya memiliki dokumen XML dan direktori penuh dengan XSD yang mendefinisikannya. Bagaimana cara mengatur Visual IDE untuk memberi tahu saya tentang kegagalan validasi, dan kemudian memberikan daftar intellisense dari tag dan atribut yang valid dalam konteks tertentu?
Apa yang telah saya coba:
- Saya telah menambahkan XSD ke proyek dengan dokumen XML.
- Saya telah menambahkan XSD ke daftar Skema XML (di bawah item menu XML / Skema ...)
- Saya bahkan telah menyertakan atribut schemaLocation dan noNamespaceSchemaLocation ke dokumen XML.
Visual Studio masih belum memberikan informasi debugging atau pengeditan yang berguna. Saya mencoba 2010 dan 2008 (saya pernah melakukannya sebelumnya di 2008 saya pikir)
Pembaruan: Saya meminta pengembang lain mencoba ini dan itu gagal juga untuknya. Dia tahu dia telah melakukannya dengan dokumen XML lain dan berhasil. Saya kemudian mengunduh editor XML Oxygen dan itu berfungsi dengan baik pada file XML dan XSD yang sama, sehingga file tersebut tampaknya baik-baik saja (atau Oxygen lebih pemaaf / fleksibel..)
sumber
Anda tidak perlu mengaitkan file secara manual di Visual Studio - ini akan secara otomatis mencocokkan file XML dengan file XSD jika Anda membukanya, dan namespace Anda ditentukan dengan benar.
Untuk menentukan namespace:
Di elemen root file XML:
Di elemen skema file XSD:
Catatan tentang penggunaan Jenis dalam skema Anda saat Anda memiliki targetNamespace
Karena Anda menetapkan a
targetNamespace
dalam skema Anda, referensi apa pun ke tipe yang ditentukan dalam skema harus diawali dengan namespace (itulah sebabnya kami menambahkanxmlns:this
atribut di<xs:schema />
elemen di atas ).sumber
Titik lain kegagalan di sini adalah Windows 7 "memblokir" file skema ... klik kanan pada file xsd pada disk, Properties> General dan jika diblokir, Anda akan memiliki tombol "Buka blokir". Ini menyebabkan validasi XML saya gagal di VS2012.
sumber
Apakah xsd Anda berisi atribut
"targetNamespace"
/schema/@targetNamespace
yang mirip dengan namespace yang Anda rujuk di xml?Contoh:
XSD :
XML :
Lihat juga: XML / XSD intellisense tidak bekerja di Visual Studio 2010
sumber
Saya memiliki masalah yang sama, tetapi VS telah mereferensikan skema saya dengan benar. Ternyata file yang saya coba validasi tidak memiliki ekstensi file 'xml'. Menambahkan .xml di akhir nama file saya, dan validasi mulai berfungsi.
sumber