program story

XPath의 인덱스가 0이 아닌 1로 시작하는 이유는 무엇입니까?

inputbox 2020. 8. 10. 08:02
반응형

XPath의 인덱스가 0이 아닌 1로 시작하는 이유는 무엇입니까?


일부 동료와 나는 우리가 프로그램 한 과거의 언어를 비교하고 우리의 경험에 대해 얘기했다 VBScript를 그와 이상한 같은 기능 인덱스 1 기반 대신 0 기반 인덱스가 거의 모든 다른 언어, 추론 그것이을 것을있는 것처럼 개발자 용 언어 대신 사용자 용 언어 (예 : Excel VBA).

그런 다음 누군가가 " XPath에도 1 기반 인덱스가 있습니다 "라고 말했습니다. Michael Kay 자신의 일부를 포함 하여 0 기반 접근 방식을 선호 하는 많은 이유가있는 이 기사발견 할 때까지 믿을 수 없었습니다 .

  • "... 0 기반 인덱싱은 1 차원 배열 액세스 표현식으로 다차원 배열에 액세스 할 때 색인 공식을 더 간단하게 만드는 경향이 있습니다."
  • "테이블을 처리하거나 문자열로 첨자 할 때 0 기반 주소 지정이 훨씬 더 편리합니다."
  • "... 하드웨어 주소 지정은 0 기반 주소 지정의 유일한 이점이 아닙니다. 계산이 더 쉬워집니다 ..."

그러나 Michael Kay는 결론적으로 인용됩니다.

... 1 기반 논리는 XPath 및 XSLT에 적합한 선택이었습니다 ... 언어는 프로그래머가 아닌 사용자를 위해 설계되었으며 사용자는 여전히 책의 첫 번째 장을 장이라고 부르는 구식 습관을 가지고 있기 때문입니다. 하나...

누군가 나에게 그것을 설명 할 수 있습니까? (1) XPath는 사용자를 위해 어떻게 설계 되었습니까? XPath의 구문 적 경직성이나 XSLT의 선언적 / 기능적 프로그래밍 측면과 씨름하는 개발자가 아닌 사람은 상상할 수 없습니다. (2) 왜 정말 XPath에의 창조자는 1부터 시작하는 인덱스를 선택하여 현대적인 프로그래밍 언어의 규범에 갔습니까?


배열 및 기타 컬렉션 인덱스는 메모리 오프셋을 나타내므로 논리적으로 충분히 0에서 시작합니다. XML 및 XPATH 인덱스는 위치와 개수를 나타내므로 논리적으로 충분히 1부터 시작합니다 (따라서 0은 "빈"을 나타냄).


이 질문에 답하려면 일부 기술의 역사를 조사해야합니다.

RSS XML XSLT 및 XPath 기록

RSS 버전 0.9는 원래 Netscape의 my.netscape.com 포털을 위해 Netscape의 두 사람이 1999 년에 RDF Site Summary로 출시했습니다. 그해 말에 v0.91 업데이트를 통해 RSS (Rich Site Summary)로 이름이 변경되었습니다. 프로젝트 개발은 여러 번 바뀌었지만 RSS 버전 1.0은 2000 년 12 월에 출시되었습니다. v1.0 업데이트를 통해 RSS에는 XML 지원이 포함되었습니다.

2002 년에 v2.0은 9 월 RSS (Really Simple Syndication)로 출시되었으며 주요 인터넷 기술로 발전하기 시작했습니다. 초기 역사에서 RSS 피드 (및 포함 된 XML 데이터)는 원시 형식으로 사람이 읽었습니다. 블로그 및 기타 뉴스 소스는 RSS 피드와 XML을 사용하여 지속적으로 업데이트되는 정보를 출력했습니다. XML은 프로그래머가 아닌 사람이 읽는 사람이 아니기 때문에 XPath와 XSLT도 쉽게 이해할 수 있어야했기 때문에 이러한 단순한 사람이 상호 작용할 때 복잡성에 압도되지 않도록해야했습니다. 이것이 XPath가 최종 사용자가 이미 익숙한 URI 스타일을 모방 한 이유입니다. 사용자의 가독성을 위해 만든 한 가지 양보 중 하나는 0 기반 인덱스 대신 1 기반 인덱스와 같은 구식 번호 지정 기술을 사용하는 것입니다.

RSS 피드와 XML은 대부분의 사람들이 읽을 수 있도록 만들어졌지만 RSS 리더는 사람이 RSS 피드를 읽을 수있는보다 쾌적한 인터페이스를 제공하도록 개발되었습니다. 이제 원시 RSS 및 XML 데이터는 일종의 판독기 또는 그래픽 인터페이스로 거의 독점적으로 읽 힙니다. XML은 웹에서 여전히 자주 (영구적으로) 사용되지만, 최종 사용자에게 더 나은 경험을 제공하기 위해 멋진 그래픽 사용자 인터페이스에 의해 마스킹됩니다.

* ' 단순한 필사자 '라는 용어 는 프로그래머가 아닌 인간을 가리 킵니다.

참고 URL : https://stackoverflow.com/questions/3319341/why-do-indexes-in-xpath-start-with-1-and-not-0

반응형