2011-06-26 27 views
12

Tôi gặp sự cố khi tìm hiểu mục đích của các tài liệu XSD và muốn giải thích hoặc liên kết đến tài nguyên phong nha. Tôi đã đọc các trang web khác nhau trong một vài giờ và không tìm thấy bất cứ điều gì giải thích "bức tranh lớn".Khi nào nên sử dụng các tệp XSD?

Cụ thể, tôi muốn biết:

  1. Khi nào bạn cần một XSD? Tại sao bạn lại sử dụng nó?
  2. XSD mang lại lợi ích gì? Các lựa chọn thay thế là gì?

Từ những gì tôi hiểu cho đến nay, về cơ bản bạn mô tả cấu trúc lớp theo định dạng XML. Nhưng bạn làm gì với nó vào thời điểm đó? Nó được sử dụng trong quá trình biên soạn? Nó được sử dụng để bạn có thể lưu các cá thể lớp trong một tài liệu XML dễ dàng hơn?

Tôi gặp khó khăn khi thấy lý do bạn cần mô tả một lớp trong tệp XML, khi bạn chỉ có thể sử dụng tệp mã. Suy nghĩ đầu tiên của tôi là bằng cách nào đó XSD được tải trong thời gian chạy, và sẽ cho phép người dùng sửa đổi nó một cách nhanh chóng, nhưng điều đó không thực sự hợp lý vì nếu một đối tượng được thêm vào, không có cách nào để tham chiếu nó trong phần còn lại của mật mã.

Ngoài ra, có thể mô tả các hàm trong tài liệu XSD/XML không?

Cảm ơn trước.

+0

Bạn đang mô tả việc sử dụng tệp lược đồ XML rất hẹp và hạn chế. Vui lòng viết lại tiêu đề câu hỏi và thẻ của bạn để tham khảo các cách sử dụng cụ thể mà bạn đang đề cập đến. – skaffman

+0

Thông tin thêm về XSD http://stackoverflow.com/questions/3403644/what-is-the-purpose-of-xsd-files – pramodc84

Trả lời

5

XSD cho phép bạn xác định các đối tượng lược đồ. Có rất nhiều công cụ ngoài đó lấy xsd làm đầu vào và tạo ra các lớp cho các đối tượng đó. Nhiều công cụ trong số này cũng tạo ra Marshalling/Unmarshalling - (chuyển đổi các đối tượng thành xml và ngược lại) cũng như thêm vào các lớp đối tượng giá trị thuần túy. Có nhiều ứng dụng cần chuyển đổi các đối tượng trong bộ nhớ thành biểu diễn xml và ngược lại và không có xsd và công cụ phù hợp bạn cần viết mã chuyển đổi cho từng đối tượng bằng tay có thể dễ bị lỗi và/hoặc có thể rất đắt tiền tùy thuộc vào số lượng các lớp trong miền của bạn. Biểu diễn xml của một đối tượng có thể không hợp lệ nếu đến từ một nguồn bên ngoài, có một xsd có thể xác nhận hợp lệ và cho phép bạn unmarshal chúng đối tượng trường hợp.

Đối biết thêm thông tin, xem

Castor/Xml Đậu vv cho java

XSD.exe công cụ cho Microsoft Tech.

1

1) Từ http://en.wikipedia.org/wiki/XML_Schema_(W3C):

Giống như tất cả ngôn ngữ lược đồ XML, XSD có thể được sử dụng để thể hiện một bộ quy tắc mà một tài liệu XML phải phù hợp để có thể được coi là 'hợp lệ' theo schema mà .

Ví dụ: Chúng tôi có bố cục tệp XML, mô tả bài kiểm tra. Câu hỏi, loại câu hỏi, câu trả lời, điểm, v.v. Để đảm bảo, mọi tệp thi mà chúng tôi sử dụng trong kỳ thi thực tế hoạt động như mong đợi, chúng tôi xác thực chúng dựa vào XSD.

2) Đối với một danh sách các ví dụ DTD) schemas thay thế (và đặc điểm của họ, hãy nhìn vào những slide:

2

sao chép từ W3Schools:

"

Mục đích của Lược đồ XML là xác định các khối xây dựng pháp lý của tài liệu XML , giống như DTD.

Một XML Schema:

- defines elements that can appear in a document 
- defines attributes that can appear in a document 
- defines which elements are child elements 
- defines the order of child elements 
- defines the number of child elements 
- defines whether an element is empty or can include text 
- defines data types for elements and attributes 
- defines default and fixed values for elements and attributes 

"

Trong thực tế nó định nghĩa XML đó là hợp lệ cho một mục đích nhất định - fro dụ một nhà phát triển hệ thống có thể sử dụng nó để xác định những gì consitutes một hợp lệ Tệp XML để nhập vào hệ thống của họ.

+0

Chỉ cần để lại điều đó tại đây: http://w3fools.com/ – miku

1

XSD là các tài liệu chỉ định cấu trúc của tài liệu XML và giúp xác thực. Cách thay thế cho các tệp này là tệp DTD. Những tập tin này chủ yếu được sử dụng cho các tài liệu html.

2

Có vẻ như bạn đã nhầm lẫn về một khía cạnh đơn giản của Lược đồ XML - việc sử dụng chúng làm đầu vào cho XSD.EXE hoặc một số công cụ khác có thể làm điều tương tự. XSD.EXE tiêu thụ tệp XML Schema và có thể tạo ra một tập các lớp .NET có thể được tuần tự hóa thành XML để xác nhận hợp lệ đối với lược đồ.

Đây là trường hợp góc của vỏ góc.

13

Bài nói chuyện của bạn về "tệp lớp" và "cấu trúc lớp" cho thấy bạn đang nghĩ đến cấu trúc dữ liệu của mình như chủ yếu được xác định bởi cấu trúc dữ liệu ngôn ngữ lập trình - tức là bạn đang dùng chế độ xem trung tâm lập trình thay vì dữ liệu xem trung tâm. Điều đó khá thiếu điểm XML, bắt đầu từ quan điểm rằng nếu các ứng dụng (đặc biệt là các ứng dụng được phát triển độc lập) là trao đổi dữ liệu một cách hiệu quả, thì việc thiết kế dữ liệu cần phải độc lập với thiết kế của ứng dụng. "Thiết kế dữ liệu" thường được biểu diễn trong một lược đồ (hoặc lược đồ XSD, hoặc một số loại khác), và nó thể hiện một hợp đồng giữa các ứng dụng giao tiếp (giống như RFC822 xác định dữ liệu mà ứng dụng email phải xử lý). Bằng cách xác nhận hợp lệ dữ liệu đối với lược đồ, các ứng dụng có thể chắc chắn rằng những gì chúng đang được gửi đi là phù hợp với đặc tả đã đồng ý.

+0

+1 Cảm ơn bạn đã cái nhìn sâu sắc. Bạn nói đúng - tôi đã suy nghĩ kỹ về nó từ một quan điểm lập trình. Tôi đoán tôi đang thể hiện sự thiếu kinh nghiệm của mình. Tôi ước tôi có thể chấp nhận điều này như là câu trả lời. Thật không may, điều này không chính xác "trả lời" câu hỏi tôi đã hỏi ban đầu, nhưng nó chắc chắn đã cho tôi một cái gì đó để suy nghĩ về. Cảm ơn nhiều. – Eric

Các vấn đề liên quan