2009-04-24 30 views
11

Tôi đã tìm kiếm một cách để thực hiện xác nhận quy tắc nghiệp vụ nâng cao hơn cho các tài liệu XML. Cho đến nay Schematron dường như có thể làm được, những gì tôi cần.Xác nhận hợp lệ XML với Schematron/XSD trong C#

Tôi đã xem xét và một số thư viện tôi đã tìm thấy rất cũ và dường như không được hỗ trợ nữa. Schematron chỉ "nóng" vào năm 2002? Có thư viện nào có thể thực hiện xác thực trong C# - hay làm cách nào để thực hiện điều đó?

Hoặc có những người khác có thể thực hiện xác thực nâng cao và có thư viện C# và được chuẩn hóa không?

+1

Tôi biết đây là câu hỏi * cũ *, nhưng: bạn đã bao giờ tìm thấy giải pháp chưa? Tôi hiện đang trong tình huống này - tôi sử dụng XSD để xác nhận lược đồ, nhưng tôi muốn sử dụng một cách tiếp cận như Schematron cho các quy tắc nghiệp vụ. Tôi thực sự không biết về nó cho đến khi tôi bắt đầu nghiên cứu "tạo trình xác nhận XSLT của riêng tôi", và tôi muốn chỉ sử dụng trình xác nhận hợp lệ, nên thực hiện thực tế Schematron (hoặc khác) tồn tại .. –

Trả lời

13

Đối với những gì đáng giá, đây là trải nghiệm của tôi ...

Tôi có những khoảnh khắc mà tôi muốn các lược đồ có thể làm được nhiều hơn trong các quy trình xác thực quy tắc kinh doanh. Tuy nhiên, theo kinh nghiệm của tôi, một lược đồ là để xác định hợp đồng dữ liệu (định dạng, loại, v.v.) ... NOT để thực thi các quy tắc kinh doanh. Cố gắng để làm cho nó nhiều hơn mà chạy vào tất cả các loại vấn đề và có thể là lý do tại sao Schematron dường như đã chết xuống trong phổ biến của nó (có thể là giả định xấu mà tôi không thể sao lưu).

Để làm được việc này, người ta thường có thể làm một cách tiếp cận hai đường chuyền:

  • Validate xml loại cấu trúc/dữ liệu, vv sử dụng xác nhận schema.
  • Áp dụng quy tắc kinh doanh để kiểm tra xml (trong mã C# bình thường).

Tôi hiểu nếu bạn muốn thực hiện một cách tiếp cận tất cả-trong-một để xác thực nhưng cố gắng sử dụng lược đồ để điều này gây ra nhiều cơn đau đầu về lâu dài. Cuối cùng, bạn sẽ có quyền kiểm soát tốt hơn đối với việc kiểm tra quy tắc kinh doanh của mình bằng cách cách ly mã.

+5

! Tôi đã có một vài suy nghĩ tương tự về bản thân, nhưng vấn đề không quá lớn đến mức tôi cần một phương pháp tiếp cận tất cả-trong-một - đó là tôi cần một "gói xác nhận" có thể được chia sẻ giữa nhiều ứng dụng - nhiều trong số đó không phải là liên kết với. Vì vậy, cần thêm một số loại tiêu chuẩn mở để xác thực quy tắc nghiệp vụ trên XML. – asgerhallas

+0

Đây chính xác là những gì tôi đã làm sau khi rối tung với Schematron sau nhiều tháng. –

+5

Nó cũng đáng chú ý là Schematron bây giờ là một tiêu chuẩn ISO. –

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