2009-12-28 18 views
6

Sadece Visual Studio'nun otomatik XSD şema nesnesinin güzelliğini keşfettim. *Visual Studio'da XML dosyalarını XSD şemasına otomatik olarak ekle?

VS'nin otomatik olarak varolan XSD şemasına belirli isimleri olan dosyaları eklemesinin kolay bir yolu var mı? Yani bir proje (veya birkaç proje) boyunca dağılmış myconfig.xml dosyaları varsa, her bir XML dosyasını açmak ve el ile ilişkilendirmek yerine, her zaman myconfig.xsd karşı doğrulamak istiyorum. Mümkün mü?

sahibi olmayan kişiler için *: Açık XML dosyası, XML/şeması oluştur ve o XML dosyasında gördüğü dayanan güzel bir şema dosyası oluşturur. sonra aynı XSD'yi başka bir XML dosyasına ekleyin ve bu dosyayı açarak XML/Şemaları seçin ve projenizden uygun şemayı seçin. Ardından vb tüm elemana intellisense ve doğrulama olsun ve isimleri, gerekli öğeleri ve öznitelikleri özellik


Güncelleme: Ben gerçekten net değildi düşünüyorum.

Bir projenin herhangi bir yerinde yeni bir web.config dosyası oluşturduğumda, ona bir şema el atamadım. XML'de belirtilen bir isim alanı yok. Yine Visual Studio otomatik DotNetConfig.xsd kullanmayı bilir:

XML Schemas dialog screenshot http://i46.tinypic.com/xarpfn.png

Tahminen Visual Studio yere DotNetConfig.xsd için web.config adlandırılmış dosyaları atar o bir eşleme vardır.

Şimdi, DbSchema.xml adlı tüm dosyaların, DbSchema.xsd adlı oluşturulmuş bir şemayı otomatik olarak kullanmasını istediğimi varsayalım. Bunu yapmanın bir yolu var mı?

+0

Öyle mi Bunu hiç anladın mı? Eğer öyleyse lütfen paylaşın. –

cevap

5

senin şemalar (ille projesi) aynı çalışma alanında ise XML dosyaları olarak, Studio otomatik dosyalarınızı sürece, otomatik olarak tamamlamak ve doğrulama için onları kullanacak Görsel bir ad alanı bildirimi var.

Bir schemaLocation özniteliği koymanıza bile gerek yoktur.

Aşağıdakileri deneyin:

  • Çift bunu şimdi dinamik görünen menü öğesi "XML" in
  • açmak için bir XML dosyası yi tıklayıp "Schemas ...". Bu size ad alanlarından şemalara güncel haritalamayı gösterecektir.

Çalışıp çalışmadığını kontrol etmek için, açık bir köşeli ayraç yerine koymaya çalışın, öğe adlarını önermelidir.

Düzenleme: bu da ad olmadan XML dosyaları ile çalışacaktır ancak sonra muhtemelen% yükleyin için yeni bir şema katalog eklemek zorunda% \ XML \ Şemalar, as described here. Alt kısımda, şemaları uzantılarla ilişkilendirmek için "İlişkilendir" öğesinin nasıl kullanılacağını açıklar.

+0

Lütfen açıklama için yukarıdaki güncellemeye bakın. –

+0

"Düzenleme" altında daha fazla açıklama eklendi. – xcut

+0

Aradığım bağlantı buydu, teşekkürler! –

1

kullanımı, bu arada http //...../ xxx.xsd veya ../Common/xxx.xsd kadar kolay

<configuration> 

    <configSections> 
    <section name="RouteConfigSection" type="RouteSection.RouteConfigSection,RouteSection" /> 
    </configSections> 

    <RouteConfigSection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="RouteConfigSection.xsd"> 
    <routes>... 

gibi ad eklediğinizde:

public class RouteConfigSection : ConfigurationSection 
{ 
    [ConfigurationProperty("routes", IsDefaultCollection = false)] 
    public RouteConfigElementCollection Routings { get { return (RouteConfigElementCollection)base["routes"]; } } 

    //https://github.com/bspell1/NLogEx/blob/master/NLogEx.Mvc/Config/Config.cs 
    [ConfigurationProperty("xmlns")] 
    private String Ns1 { get { return null; } } 

    [ConfigurationProperty("xmlns:xsi")] 
    private String Ns2 { get { return null; } } 

    [ConfigurationProperty("xsi:noNamespaceSchemaLocation")] 
    private String Ns3 { get { return null; } } 
}