Podczas pracy nad przyszłymi elementami Desktop Info doszedłem do momentu, w którym przydało by się mieć schemat pliku xml czyli xsd. O ile w moim przypadku stworzenie takiego schematu nie powinno nastręczać problemu (plik jest bardzo prosty) dla kogoś kto płynnie włada xsd-ami to mi niestety by zajęło trochę czasu, żeby poprzypominać sobie konstrukcję. Wprawdzie Visual Studio bardzo przyjemnie umila ten proces przez podpowiadanie składni i kolejnych elementów to jednak istnieje szybsza metoda.

Mając otwarty przykładowy plik xml, w menu znajdziemy pozycję Create Schema. To narzędzie generuje nam plik xsd. Teraz co pozostaje to tylko doprowadzenie xsd do takiego stanu jaki nas interesuje.

<?xml version=1.0 encoding=utf-8?>
<xs:schema attributeFormDefault=unqualified elementFormDefault=qualified xmlns:xs=http://www.w3.org/2001/XMLSchema>
  <xs:element name=InputControls>
    <xs:complexType>
      <xs:sequence>
        <xs:element name=TextBox>
          <xs:complexType>
            <xs:attribute name=id type=xs:string use=required />
            <xs:attribute name=exampleValue type=xs:string use=required />
            <xs:attribute name=exampleTooltip type=xs:string use=required />
          </xs:complexType>
        </xs:element>
        <xs:element name=ComboBox>
          <xs:complexType>
            <xs:attribute name=id type=xs:string use=required />
            <xs:attribute name=exampleValue type=xs:string use=required />
            <xs:attribute name=exampleTooltip type=xs:string use=required />
          </xs:complexType>
        </xs:element>
        <xs:element name=Label>
          <xs:complexType>
            <xs:attribute name=id type=xs:string use=required />
            <xs:attribute name=value type=xs:string use=required />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

 

Mając coś takiego jak powyżej, mamy już z górki (w większości przypadków) 🙂