XSD là file gì? Cách mở, chỉnh sửa và chuyển đổi file XSD

Một tệp có phần mở rộng đuôi .XSD rất có thể là tệp lược đồ XML. Đây là một định dạng tệp dựa trên văn bản, giúp xác định quy tắc xác thực cho tệp XML và giải thích biểu mẫu XML. Các tệp XML có thể tham chiếu tệp đến XSD với thuộc tính schemaLocation.

Phần mềm Pattern Make của HobbyWare cũng sử dụng tiện ích mở rộng XSD làm định dạng chính của mình.

Cách tạo một tệp XSD

Hầu hết các câu hỏi liên quan đến các tệp XSD đều xoay quanh việc làm thế nào để tạo ra các tệp này. Dưới đây là cách tạo lược đồ XML (tệp XSD) bằng cách sử dụng các lớp trong .Net framework cho dù bạn không biết gì về định dạng XSD:

protected void Button1_Click(object sender, EventArgs e)
    {
        // The DataSet name becomes the root XML element
        DataSet MyDataSet = new DataSet("Golfers");
 
        // This can be confusing, the 'DataTable' will actually
        // become Elements (Rows) in the XML file.
        DataTable MyDataTable = new DataTable("Golfer");
 
        MyDataSet.Tables.Add(MyDataTable);
 
        // Make columns attributes so we can 
        // link directly to a GridView
        MyDataTable.Columns.Add(new DataColumn("ID",
                                     typeof(System.Int32),
                                     null,
                                     MappingType.Attribute));
 
        MyDataTable.Columns.Add(new DataColumn("Name",
                                     typeof(String),
                                     null,
                                     MappingType.Attribute));
 
        MyDataTable.Columns.Add(new DataColumn("Birthday",
                                     typeof(DateTime),
                                     null,
                                     MappingType.Attribute));
 
        // Write out the XSD
        MyDataSet.WriteXmlSchema(@"C:\GolfersSchema.xsd");
 
        // Put some data in the table
        DataRow TempRow;
        TempRow = MyDataTable.NewRow();
        TempRow["ID"] = 1;
        TempRow["Name"] = "Bobby Jones";
        TempRow["Birthday"] = new DateTime(1902, 3, 17);
        MyDataTable.Rows.Add(TempRow);
 
        TempRow = MyDataTable.NewRow();
        TempRow["ID"] = 2;
        TempRow["Name"] = "Sam Snead";
        TempRow["Birthday"] = new DateTime(1912, 5, 27);
        MyDataTable.Rows.Add(TempRow);
 
        TempRow = MyDataTable.NewRow();
        TempRow["ID"] = 3;
        TempRow["Name"] = "Tiger Woods";
        TempRow["Birthday"] = new DateTime(1975, 12, 30);
        MyDataTable.Rows.Add(TempRow);
 
        // Write out the data
        MyDataSet.WriteXml(@"C:\Golfers.xml");
    }
 

Còn đây là cách lưu dữ liệu:

<?xml version="1.0" standalone="yes"?>
  <Golfers>
    <Golfer ID="1" Name="Bobby Jones" Birthday="1902-03-17T00:00:00-05:00" />
    <Golfer ID="2" Name="Sam Snead" Birthday="1912-05-27T00:00:00-05:00" />
    <Golfer ID="3" Name="Tiger Woods" Birthday="1975-12-30T00:00:00-06:00" />
  </Golfers>
Đây là cấu trúc của tệp lược đồ. Lưu ý, bạn luôn có thể đi vào lược đồ và điều chỉnh mọi thứ nếu muốn:

 <?xml version="1.0" standalone="yes"?>
  <xs:schema id="Golfers" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="Golfers" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
      <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="Golfer">
            <xs:complexType>
              <xs:attribute name="ID" type="xs:int" />
              <xs:attribute name="Name" type="xs:string" />
              <xs:attribute name="Birthday" type="xs:dateTime" />
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
    </xs:element>
  </xs:schema>

Đây là một cách để xác thực XML dựa trên lược đồ:

protected void Button2_Click(object sender, EventArgs e)
    {
        // First, read in the XML schema
        DataSet MyDataSet = new DataSet();
        MyDataSet.ReadXmlSchema(@"C:\GolfersSchema.xsd");
 
        // Now, read in the XML file (it is validated 
        // against the schema when it is read in).
        MyDataSet.ReadXml(@"C:\Golfers.xml");
 
        // See how it looks in a GridView
        GridView1.DataSource = MyDataSet;
        GridView1.DataBind();
    }

Bạn có thể kiểm tra xác thực bằng cách sửa đổi tệp XML và cố gắng đọc nó:

 <Golfer ID="abc" Name="Tiger Woods" Birthday="1975-12-30...

Khi tệp XML đã được đọc, một ngoại lệ sẽ được tạo. Không có xác thực XSD, tệp XML sẽ được tải mà không gặp bất cứ lỗi nào.

Cách mở một tệp XSD

Vì XSD là các tệp văn bản có định dạng tương tự các tệp XML, nên chúng cũng sẽ tuân theo cùng một quy tắc mở cũng như chỉnh sửa giống với các tệp văn bản thông thường.

SchemaViewer là một chương trình miễn phí giúp hiển thị các tệp XSD ở định dạng hình cây thích hợp, giúp chúng dễ đọc hơn so với khi được hiển thị trên các trình soạn thảo văn bản đơn giản như Notepad. Ngoài ra, các tệp XSD cũng có thể được mở bằng Microsoft Visual Studio, XML Notepad và EditiX XML Editor.

Cách mở một tệp XSD

Bạn cũng có thể sử dụng các trình soạn thảo code làm trình xem và soạn thảo XSD, với điều kiện tệp này phải là tệp văn bản thuần túy. Hãy tham khảo danh sách “5 trình soạn thảo code miễn phí tốt nhất” của chúng tôi để chọn cho mình một công cụ phù hợp.

Như đã nói, do phần mềm Pattern Make sử dụng tiện ích mở rộng XSD làm định dạng chính của nó cho nên bạn cũng có thể làm việc với các tệp XSD bằng phần mềm này. Tuy nhiên, để có thể mở và in tệp mẫu miễn phí, bạn phải tải về và cài đặt Pattern Maker Viewer. Sau khi cài đặt xong, chỉ cần kéo tệp XSD vào chương trình hoặc sử dụng menu File > Open… Ngoài ra, Pattern Maker Viewer cũng hỗ trợ làm việc với cả định dạng PAT.

Cách chuyển đổi một tệp XSD

Cách dễ nhất để chuyển đổi tệp XSD sang định dạng khác là sử dụng một trong các trình soạn thảo code như đã đề cập phía trên.

Ví dụ: Visual Studio có thể lưu tệp XSD sang các định dạng văn bản như XML, XSLT, XSL, DTD, TXT và các định dạng tương tự khác. Ngoài ra, trình soạn thảo lược đồ JSON sẽ có thể chuyển đổi XSD thành JSON.

Công cụ XML Schema Definition Tool (Xsd.exe) của Windows cũng có thể chuyển đổi các tệp XDR, XML và XSD thành một lớp hoặc tập dữ liệu tuần tự hóa, như lớp C#.

Bạn có thể sử dụng Microsoft Excel nếu cần nhập dữ liệu từ tệp XSD và đặt nó vào bảng tính Excel. Dưới đây là cách tạo nguồn XML từ tệp XSD, sau đó kéo và thả dữ liệu ngay vào bảng tính:

Đầu tiên, bạn mở excel và cho hiển thị tab Developer (nhấp vào File -> Options).

Mở excel và cho hiển thị tab Developer (nhấp vào File -> Options).

Bây giờ bạn phải tạo nguồn XML từ XSD của mình: Nhấp vào tab Developer, trong nhóm XML, bạn bấm vào Source để hiển thị ngăn tác vụ Xml Source, sau đó nhấp vào nút XML Maps.

Nhấp vào tab Developer, trong nhóm XML, bạn bầm vào Source để hiển thị ngăn tác vụ Xml Source, sau đó nhấp vào nút XML Maps.

Nhấp vào nút Add tại dấu nhắc, trỏ đến tệp XSD cần thêm, sau đó nhấn OK để quay lại màn hình chính.

Nhấp vào nút Add tại dấu nhắc, trỏ đến tệp XSD cần thêm, sau đó nhấn OK để quay lại màn hình chính.

Sau đó, bạn có thể kéo và thả file của mình vào một ô trong bảng tính để neo bảng được ánh xạ đã tạo.

Kéo và thả file của mình vào một ô trong một bảng tính, để neo bảng được ánh xạ đã tạo

Tiếp theo, bạn có thể sử dụng Import để đưa dữ liệu XML của mình vào bảng tính và Export để lấy dữ liệu ra.

Làm thế nào nếu vẫn không thể mở được một tệp XSD?

Nếu bạn vẫn không thể mở được các tệp XSD mặc dù đã sử dụng các phương pháp trên thì có khả năng tệp đó của bạn không thực sự ở định dạng XSD. Một số loại tệp có phần mở rộng đuôi nhìn qua trông rất giống với phần mở rộng của tệp .XSD, vì vậy bạn cũng nên kiểm tra kỹ lại phần mở rộng của tệp xem đã chuẩn chưa.

Ví dụ, các tệp XDS trông rất giống với XSD nhưng thay vào đó, chúng chỉ được sử dụng cho các phần mềm DS Game Maker Project và LcdStudio Design, và hoàn toàn không liên quan gì đến các tệp hoặc mẫu XML.

Tương tự như như các tệp XACT Sound Bank sử dụng phần mở rộng tệp .XSB. Chúng là các tệp âm thanh và sẽ không thể mở được bằng bất kỳ trình mở XSD hoặc trình chuyển đổi tệp văn bản nào.

Hy vọng các thông tin trong bài hữu ích với bạn!

Xem thêm:

Thứ Sáu, 14/12/2018 09:30
4,73 👨 9.919
0 Bình luận
Sắp xếp theo
    ❖ Kiến thức cơ bản