.NET 용 XPath 및 XSLT 2.0? [닫은]


91

.NET 3.5는 XPATH 2.0 또는 XSLT 2.0을 완전히 지원하지 않습니다. 이는 너무 나쁩니다. 이 두 가지가 향후 .NET 버전에 포함되고 완전히 지원 되는지 아는 사람이 있습니까?


codeproject.com/Articles/24766/… Java saxon 라이브러리는 XSL 2.0 및 XQuery 1.0을 구현합니다. IKVM 및 GNU Classpath를 사용하여 .NET에서이 라이브러리에 액세스 할 수 있습니다. 그러나 Saxon을 사용하는 인터페이스는 .NET에서 사용하는 인터페이스와 매우 다릅니다. 이 기사 페이지에서 Saxon 인터페이스와 .NET XslCompiledTransform 간의 격차를 해소하는 데 도움이되는 인터페이스 어댑터를 다운로드 할 수 있습니다. 따라서 .NET XSL 1.0 사용에서 Saxon XSL 2.0으로 코드를 훨씬 쉽게 이식 할 수 있습니다.
gls123

3
이 기능 요청은 Microsoft의 uservoice 에 게시 할 수 있습니다.
Binoj Antony 2013

답변:


130

조만간 XPath 2.0 또는 XSLT 2.0에 대한 지원을 추가하지 않을 것입니다.

그러나 타사 구현을 사용할 수있는 한 BCL의 일부가 아니라고해도 기분이 나쁘지 않아야합니다.

Microsoft는 고객 지향적입니다. 고객이 원하지 않으면 성공하지 못할 것입니다.


2009-11-18 : 여기 XML 팀에 연락하여 다음 과 같은 응답을 받았습니다.

XML은 앞으로도 플랫폼의 핵심 부분이 될 것이지만 현재로서는 XSLT 2.0 구현을 추구하지 않기로 결정했습니다. 수행하려는 특정 XSLT 작업이 있고 XSLT 1.0에 문제가있는 경우 알려 주시면 최선을 다해 도와 드리겠습니다.


이 목록은 현재 github.com/maxtoroq/dotnet-xml 에서 관리됩니다 .


22
그들은 처음에 구현을 약속했습니다. 이것이 바로 Microsoft와 같은 대기업이 우리가 할 것이라고 말하고 Windows의 일부로 모든 사람에게이를 프로그래밍 할 이유가 없기 때문에 구현이 거의없는 이유입니다. 그러나 MS는 XML 팀에서 몇 명의 핵심 인력을 잃었고 그 이후로 2.0 지원은 중단되었습니다.
CodeRipper 2010

6
그 대답은 엄청나게 친숙해 보입니다. 몇 년 전에 비슷한 질문을했고 같은 대답을 얻었습니다. 부끄러움-XSLT 2.0은 언어 유용성에있어 다소 중요한 개선처럼 보입니다.
Eamon Nerbonne

1
실제 문제는 이러한 타사 옵션이 .NET Standard / Core에서 실행 되도록 업데이트 되지 않았 으며 일부는 JKVM을 기반으로하므로 업데이트 할 수 없다는 것입니다. 내가 확인 "중심의 고객"아니에요, 당신은 거기에 링크 얼마나 많은 제 3 자 상용 제품을 고려 라인은 아무것도 설명 ..
Jaykul

1
그들이 진정으로 고객 지향적이라면 그렇게 할 것입니다. 이것은 UserVoice에서 가장 많이 찬성 된 문제 중 하나입니다. 모두가 구걸하고 있습니다. XSLT는 틈새 시장이 아니며 대부분의 정보 시스템 수업에서 가르칩니다. 기본적인 데이터 교환 형식입니다.
alirobe

2
참고 : .Net Core 기능 요청 : XPath / XSLT v2 및 3 지원을위한 github.com/dotnet/corefx/issues/2295 .
JohnLBevan

23

블로그 게시물보기

XSLT 2.0 및 XPath 2.0을 구현하지 않는 데에는 몇 가지 이유가 있습니다.

3 가지 기술 (XQuery, XSLT 2.0 및 XPath 2.0)을 모두 구현하려면 많은 노력과 리소스가 필요합니다. 우리의 기본 원칙은 XML 쿼리 기술의 확산이 최종 사용자에게 혼란 스럽다고 생각한다는 것입니다. 우리는 .NET Framework에 이미 존재하는 XPath 1.0 및 XSLT 1.0 외에도 세 가지 추가 XML 쿼리 및 변환 언어를 지원하고 설명하는 것보다 사람들이 배워야 할 언어를 하나 더 구현하고 싶습니다. 고객과 지원 담당자는 3 가지 정교한 XML 쿼리 언어의 복잡성을 처리해야합니다.이 중 2 개는 비슷해 보이지만 XPath 2.0 및 XQuery의 경우에는 매우 다르게 작동합니다.


12
5 년 전 " 다음 버전의 .NET Framework 에서 XSLT 2.0 또는 XPath 2.0을 볼 수없는 이유"라는 제목의 블로그에서 발췌 한 것입니다 (내 강조)
Brian Agnew

1
감사! 몰랐어요! 더 새로운 설명을 기대 하면서이 답변을 다시 수락하지 않았습니다. (좋은 설명이지만 +1은 유지됩니다.)
Wim ten Brink

3
즉, .NET에서 XSLT를 다룰 때 명심할 가치가있는 두 가지가 있습니다. 1) XSLT 2.0의 큰 장점 중 하나를 다루는 exslt : node-set ()을 지원하고 2) msxsl : script를 사용하면 확장 성 API를 사용하지 않고 C # / VB / JScript.NET을 사용하여 XSLT 내에서 직접 임의로 복잡한 함수를 정의합니다. 노드 표현에 XslCompiledTransform사용 XPathNavigator하고 후자는 XDM을 완전히 구현 하기 때문에 실제로 모든 XPath2 기능 (예 : 연산자 <<>>)을 사용자 정의 함수로 구현할 수 있습니다 .
Pavel Minaev

1
주제에 대한 마지막 의사 소통이 아닙니다. 예 : blogs.msdn.com/xmlteam/archive/2007/01/29/xslt-2-0.aspx
thorn̈

11
2013 년 변경 사항이 없습니다 :(
예브게니 나보코프

12

제 생각에는 많은 Microsoft XML 리소스가 XSLT 2.0에서 LINQ to XML로 전환되었으며, 제 생각에는 XSLT와 동일한 문제 공간을 전혀 다루지 않습니다.

LINQ to XSD는 LINQ to XML을 향상 시키려고했지만 (XML 스키마 이점은 물론 구문이 덜 추함) Microsoft가 얼마 전에 CodePlex에 오픈 소스했으며 커뮤니티 지원이없는 것으로 보입니다.

또한 Microsoft가 Visual Studio에 통합 된 XSLT 2.0 편집기 및 디버거없이 새로운 XSLT 2.0 프로세서를 출시 할 가능성은 낮으므로 '비 채택'결정을 되돌리려면 상당한 노력 / 시간이 필요합니다. [업데이트] 이제 Saxon의 3.0 XSLT 프로세서와 통합 되는 Microsoft VSCode 용 XSLT 3.0 확장 (직접 관리) 이 있습니다.

그래서 대신 우리는 표준 준수로 명성이 높고 .NET을위한 뛰어난 확장 성 옵션을 제공하는 Saxon.NET을 가지고 있습니다.


3

Microsoft는 .NET에서 XPath / XSLT 2.0에 대한 지원을 릴리스 할 계획이 없습니다.

XQSharp 는 XPath 2.0, XSLT 2.0 및 .NET 용 XQuery의 타사 구현을 제공합니다.

[편집 : XQSharp 2.0 베타 (XSLT 2.0 포함)가 출시되었습니다.]


@ Oliver-Hallam :이 예측이 여전히 유효합니까? 당신은 궤도에 있습니까?
Dimitre Novatchev

@ Oliver-Hallam : XQSharp-XSLT 2.0이 Saxon.NET보다 빠를까요?
Dimitre Novatchev

@ Dimitre-Novatchev-재밌게 물어보세요. 앞으로 몇 시간 내에 XSLT 구현의 베타 버전이 출시 될 것입니다! 속도에 관해서는 우리의 성능이 Saxon만큼 좋다고 믿지만, 편견이있어서 독립적 인 의견을 좋아할 것입니다!
Oliver Hallam

1
XQSharp는 이제 XMLPrime이라고합니다.
Mike Gale

2

나는 그들이 핵심 W3C 기술이기 때문에 어떤 단계에 있지 않을 것이라고 믿을 수 없습니다. 그러나 나는 이것에 대한 현재 참조를 찾을 수 없습니다 (오직 오래 전에 게시 된 정보 만).

가까운 장래에 필요한 Xpath / XSLT 버전을 지원하는 Saxon 을 살펴보아야 합니다.


대신 AltovaXML을 사용합니다. altova.com/altovaxml.html 무료이며 COM을 통해 Java, .NET 및 WIN32를 지원합니다. .NET이 기본적으로 지원하기를 바랐습니다.
Wim ten Brink

1
AltovaXML API는 쓸모가 없으며 Saxon이 관리되는 동안 네이티브 코드입니다.
Max Toro

1
Altova의 큰 문제는 텍스트 노드 만 보존하는 공백 만 올바르게 구현하는 것을 거부한다는 것입니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.