.NET 3.5 không hoàn toàn hỗ trợ XPATH 2.0 hoặc XSLT 2.0, điều này quá tệ. Có ai biết nếu hai cái này sẽ được bao gồm và hỗ trợ đầy đủ trong bất kỳ phiên bản .NET nào trong tương lai không?
.NET 3.5 không hoàn toàn hỗ trợ XPATH 2.0 hoặc XSLT 2.0, điều này quá tệ. Có ai biết nếu hai cái này sẽ được bao gồm và hỗ trợ đầy đủ trong bất kỳ phiên bản .NET nào trong tương lai không?
Câu trả lời:
Tôi không nghĩ rằng họ sẽ sớm bổ sung hỗ trợ cho XPath 2.0 hoặc XSLT 2.0.
Tuy nhiên, bạn sẽ không cảm thấy tồi tệ nếu đây không phải là một phần của BCL, miễn là bạn có sẵn các triển khai của bên thứ ba:
Microsoft hướng tới khách hàng. Nếu khách hàng không muốn, họ sẽ không làm.
2009-11-18: Tôi đã liên hệ với nhóm XML tại đây và nhận được phản hồi sau:
Mặc dù XML tiếp tục là một phần quan trọng của nền tảng của chúng tôi trong tương lai, nhưng chúng tôi đã quyết định không theo đuổi triển khai XSLT 2.0 vào lúc này. Nếu có một nhiệm vụ XSLT cụ thể mà bạn đang cố gắng hoàn thành và gặp khó khăn với XSLT 1.0, vui lòng cho chúng tôi biết và chúng tôi sẽ cố gắng hết sức để trợ giúp.
Danh sách này hiện được duy trì tại github.com/maxtoroq/dotnet-xml
Xem bài đăng trên blog này
Có một số lý do khiến chúng tôi không triển khai XSLT 2.0 và XPath 2.0
Cần rất nhiều nỗ lực và nguồn lực để triển khai cả 3 công nghệ (XQuery, XSLT 2.0 & XPath 2.0). Nguyên tắc hướng dẫn của chúng tôi là chúng tôi tin rằng việc tạo ra sự gia tăng của các công nghệ truy vấn XML là điều khó hiểu đối với người dùng cuối. Chúng tôi muốn triển khai thêm một ngôn ngữ mà chúng tôi thúc đẩy mọi người học hơn là phải hỗ trợ và giải thích thêm ba ngôn ngữ truy vấn và chuyển đổi XML, ngoài XPath 1.0 & XSLT 1.0 đã tồn tại trong .NET Framework. Việc khách hàng và những người hỗ trợ của chúng tôi phải đối mặt với sự phức tạp của 3 ngôn ngữ truy vấn XML phức tạp, hai ngôn ngữ này trông giống nhau nhưng hoạt động hoàn toàn khác trong trường hợp XPath 2.0 và XQuery đối với chúng tôi dường như không có lợi.
XslCompiledTransform
sử dụng XPathNavigator
để biểu diễn nút và sau này thực hiện đầy đủ XDM, bạn thực sự có thể triển khai tất cả chức năng XPath2 (như toán tử <<
và >>
) dưới dạng các hàm tùy chỉnh trên đó.
Tôi hiểu là nhiều tài nguyên XML của Microsoft đã được chuyển hướng từ XSLT 2.0 sang LINQ sang XML, mà - theo quan điểm của tôi - không giải quyết cùng một không gian vấn đề như XSLT.
LINQ to XSD được cho là để nâng cao LINQ sang XML (cũng như các lợi ích của XML Schema, cú pháp ít xấu hơn), nhưng điều này đã được Microsoft đưa vào CodePlex một thời gian trước và dường như không có sự hỗ trợ của cộng đồng.
Ngoài ra, có khả năng Microsoft sẽ ra mắt bộ xử lý XSLT 2.0 mới mà không có trình chỉnh sửa và trình gỡ lỗi XSLT 2.0 được tích hợp vào Visual Studio, vì vậy sẽ cần khá nhiều nỗ lực / thời gian để đảo ngược quyết định 'không chấp nhận' của họ.
Vì vậy, thay vào đó chúng tôi có Saxon.NET, có danh tiếng tuân thủ các tiêu chuẩn không thể đạt được và cung cấp các tùy chọn khả năng mở rộng tuyệt vời cho .NET.
Microsoft không có kế hoạch phát hành hỗ trợ cho XPath / XSLT 2.0 trong .NET.
XQSharp cung cấp một bên thứ 3 triển khai XPath 2.0, XSLT 2.0 và XQuery cho .NET.
[chỉnh sửa: XQSharp 2.0 beta (với XSLT 2.0) đã được phát hành]
Tôi không thể tin rằng chúng sẽ không ở một số giai đoạn vì chúng là công nghệ W3C cốt lõi. Tuy nhiên tôi không thể tìm thấy bất kỳ tài liệu tham khảo hiện tại nào về những thứ này (chỉ có thông tin được đăng cách đây rất lâu).
Trong tương lai gần, bạn nên xem Saxon hỗ trợ các phiên bản Xpath / XSLT mà bạn yêu cầu.