XSD

2011-07-11 31 views
12

'u temel alan MULTIPLE sınıfı dosyalar oluşturun XSD aracıyla mümkün olmayan bir şey denemeyi deneyebilirim, ancak daha basit bir çözüme geçmeden önce sormak istedim.XSD

Tek bir kod dosyasında birden çok sınıf üretecek birden çok öğeye (ve birden çok karmaşık türüne) sahip bir XSD dosyası var (bunu sevmiyorum). XSD aracından üretilen temiz ve okunabilir sınıf dosyalarına sahip olmak için, her bir öğenin ayrı bir kod dosyasına yerleştirilmesini istiyorum, hepsi bir kod dosyasına kısmi sınıflar olarak yerleştirilmemelidir.

Bunu nasıl yapacağını bilen var mı? Ya da bu XSD'yi şemadaki her xml öğesi için tek bir şemaya ayırmak için tek çözümüm?

MSDN makalesi http://msdn.microsoft.com/en-us/library/x6c1kb0s(v=VS.100).aspx, bunun yapılıp yapılamayacağını belirten bir dil sağlamaz.

Herhangi bir cevap veya yorum için şimdiden teşekkür ederiz.

+0

Sanırım bir yere sahip olabilirsiniz, ama eğer bir çözüm varsa, onu görmek isterim. –

+0

Hiçbir şey bulamadım üzgünüm. –

cevap

12

Bu doğrudan cevap vermez, ama birkaç şey dışarı atmak istedi: Ben genellikle karşı-üretken oluşturulan kodunu ayırmak için bulmak

. Her zaman "dosya başına bir sınıf" kuralını takip etmeyi severim, ama burada bir istisna yapıyorum, çünkü genellikle çok büyük şemalarla uğraşıyorum. Kendi dizinlerinde bile, kodun yeni bir sürümünü oluşturduğumda (yüzlerce) dosyayı farklılaştırmak istemiyorum. Oluşturulan kodun tek bir dosyada bulunabilmesi çok kolay.

Şimdi, olası bir çözümü sunmak için - Resharper tüm sınıfları bir dosyadan çekme ve kendi dosyalarına yerleştirme özelliğine sahiptir. Çözüm gezgininde dosyayı sağ tıklarsanız, Refactor → Move types into matching files .... Tabii ki, bu, sadece bu şekilde üretmek kadar elverişli değil, ama bunu yapacak bir araç bilmiyorum.

+0

Zaman ve cevap için teşekkürler. Projem için ihtiyaçlarımda çalışırken yorumlarımı kullanacağım. – AndHeCodedIt

+0

İyi şanslar. Bunu yapacak bir araç bulursanız geri gönderin :) – womp

3

Çözmeyi denediğim sorun, ya ayrı sınıf dosyalarında ya da birden çok sınıf içeren aynı ad alanı yerine tekil, ancak benzersiz sınıflardaydı. Sonuç olarak, benzer bir yanıt arıyordum ve bu referansı Getting xsd.exe To Not Create Duplicate Classes

paylaşmak için buldum. Bu basit bir çözümdür, ancak anlaması uzun zaman aldı. Tüm sınıflarınızı bir kerede derlemek için xsd.exe'yi kullanmanız gerekir, bu nedenle iki ayrı komut çalıştırmak yerine, bir tane çalıştırmanız yeterlidir: C: \ Solution \ Project> xsd.exe Types.xsd Request.xsd Response. xsd/c Artık her üç sınıfın da bir adet Response.xsd dosyanız var.