XPath를 사용하면 XML 보고서의 기능을 향상시킬 수 있습니다
이전 게시글인 "GPS XML 데이터를 활용한 세련된 보고서 작성"에서는 XPath 표현식을 사용하여 XML 문서에서 특정 노드를 선택하여 고도 차트(elevation line chart)를 만들었습니다. XPath는 값 계산에도 사용할 수 있습니다. Altova StyleVision은 XPath를 강력하게 지원하며, 이를 통해 GPS XML 보고서에 흥미로운 정보를 추가하는 XPath 표현식을 작성할 수 있습니다. 예를 들어, GPS 장치에 저장된 고도 데이터를 미터 단위에서 처리하여, 대신 해발 고도를 피트 단위로 표시하는 차트를 만들 수 있습니다.

미터를 피트로 변환하는 공식은 다음과 같습니다: (미터 x 3.2808399) = 피트. 이 계산은 차트 설정 대화 상자에서 사용할 수 있습니다
이제 차트는 원본 파일에서 가져온 데이터를 기반으로 수행된 계산 결과를 사용하여 생성될 것입니다.
XPath 시간 함수
아마도 저희 차트에 X축 스케일의 정의가 포함되어 있지 않다는 것을 눈치채셨을 겁니다. GPS 장치는 몇 초마다 트랙 포인트를 기록하기 때문에, X축의 눈금과 값을 의도적으로 생략했습니다. 아이스 클라이밍 등반 경로 파일에는 1,800개 이상의 고도 데이터 포인트가 포함되어 있으며, 이렇게 많은 데이터 포인트 때문에 눈금이 빽빽하게 모여서 하나의 선처럼 보이는 현상이 발생했습니다. 또한, 값에 해당하는 텍스트를 표시할 공간도 충분하지 않았습니다.
하지만 하이킹에 얼마나 걸렸는지 알 수 있다면 흥미롭지 않을까요? 스타일 비전의 자동 계산 기능을 활용하여 그 정보를 보고서에 추가할 수 있습니다. 아래 디자인 예시에서 볼 수 있듯이, "삽입 / 자동 계산 / 값" 메뉴 옵션을 통해 보고서에 세 개의 자동 계산 요소를 추가하고, 설명적인 텍스트로 보완했습니다.

자동 계산 요소 중 하나를 마우스 오른쪽 버튼으로 클릭하면, 아래 그림에 표시된 것처럼 축소된 크기로 XPath 편집 대화 상자가 나타나는 메뉴가 열립니다. 이 창에 XPath 표현식을 직접 입력하거나, "요소", "연산자", "함수" 목록에서 항목을 선택하여 XPath 표현식을 구성할 수 있습니다.
여행 경과 시간을 계산하기 위해, 각 트랙 포인트의 time 요소에 대한 XPath 표현식을 사용하여 XPath 함수 max(anyAtomicType)과 min(anyAtomicType)을 활용할 수 있습니다. 이를 통해 트랙에 기록된 가장 빠르고 가장 늦은 시간을 찾을 수 있습니다. 가장 빠른 시간에서 가장 늦은 시간을 빼면 경과 시간을 계산할 수 있습니다.

자동 계산 오른쪽 클릭 메뉴의 또 다른 옵션은 "값 서식" 대화 상자를 열어 계산 결과의 데이터 유형에 적합한 다양한 서식 옵션을 즉시 사용할 수 있도록 합니다.

또한, min() 및 max() 함수를 사용하여 출발 및 도착 시간을 선택할 수도 있지만, GPS 장치에 저장된 데이터는 GMT 시간으로 되어 있으며, 이번 등반은 미국 동부 표준시 지역에서 이루어졌는데, 해당 지역은 현지 시간이 5시간 빠릅니다.
다행히 XPath에는 adjust-dateTime-to-timezone()이라는 특수 함수가 있어, 특정 날짜 및 시간 값을 다른 시간대로 변환할 수 있습니다. 저희가 출발 시간을 조정하는 데 사용한 표현식은 다음과 같습니다
adjust-dateTime-to-timezone(min($XML/n1:gpx/n1:trk/n1:trkseg/n1:trkpt/n1:time), xs:dayTimeDuration('-PT5H'))
참고로, 조정 기간을 문자열 형태로 입력해야 하며, 명시적으로 dayTimeDuration 데이터 유형으로 지정해야 합니다.
"값 서식" 대화 상자를 사용하여 출발 및 도착 시간을 익숙한 방식으로 표시할 수 있습니다

저희 GPS XML 보고서에 대한 XPath 기능 개선 사항이 하나 더 있습니다. 저희는 이전 게시글에서, 저희는 StyleVision 프로젝트와 표준화된 파일 이름을 활용하여 SPS 파일을 수정하지 않고도 여러 데이터 파일에 대한 보고서를 생성하는 방법을 설명했습니다. 또한, StyleVisionBatch 유틸리티나 StyleVision API를 사용하여 SPS 스타일시트를 통해 보고서 생성 과정을 자동화하고, 다양한 형식의 보고서를 만들 수 있습니다.
차트 파일 이름들
HTML 출력을 생성하고 저장할 때, 주요 보고서는 HTML 문서이고 차트는 별도의 이미지 파일로 저장됩니다. 차트 설정 대화 상자에서 차트 파일 이름을 지정할 수 있지만, 서버의 동일 폴더에 여러 개의 HTML 보고서를 저장하려면 각 차트에 대해 서로 다른 파일 이름을 사용해야 합니다. 그렇지 않으면, 새로 생성되는 각 차트는 기본 이름으로 저장되어 이전 버전이 덮어씌워질 수 있습니다.

"사용자 정의 파일 이름" 옵션을 사용하면 XPath 표현식을 사용하여 이미지 파일 이름을 다르게 지정할 수 있습니다. 간단한 해결 방법 중 하나는 임의의 숫자를 생성하고, 이를 문자열로 변환한 다음, 해당 문자열을 파일 이름에 삽입하는 것입니다.
하지만 우리는 그렇게 할 수 없습니다. 왜냐하면 XPath에는 "random()" 함수가 포함되어 있지 않기 때문입니다.
대신, 두 가지 추가적인 XPath 시간 함수를 결합하여 유사 난수 문자열을 생성할 수 있습니다. seconds-from-time() 함수는 임의의 값으로부터 초와 밀리초를 반환하고, current-time() 함수는 현재 시스템 시간을 시간, 분, 초, 밀리초 단위로 반환합니다.
이미지 파일 설정 대화 상자에서 XPath 표현식에 "현재 시간으로부터의 초(current-time())" 값을 삽입하여, HTML 결과가 생성되는 정확한 초와 밀리초를 기준으로 파일 이름을 생성할 수 있습니다. 파일 이름 문자열을 생성하는 전체 XPath 표현식은 다음과 같습니다

생성된 HTML 파일을 저장하면, StyleVision은 메인 문서와 함께 생성된 모든 추가 파일 목록을 알려줍니다

경로 지도 이미지 파일 이름들
여행 보고서를 위해 여러 개의 HTML 페이지를 만들 때, 각 여행에 해당하는 다른 경로 지도를 참조해야 합니다. XPath는 이 작업에도 도움이 될 수 있습니다. 처음에 우리는 특정 파일 이름을 사용하여 지도를 삽입했지만, 대신 스타일시트가 처리될 때 제공될 매개변수로 이미지 파일 이름을 정의할 수 있습니다.
"편집 / 스타일시트 매개변수" 메뉴 옵션을 선택하면 "매개변수 편집" 대화 상자가 열리며, 이를 통해 스타일시트의 모든 매개변수에 중앙 집중적으로 접근할 수 있습니다. 아래 스크린샷에서 "routeMapFile"이라는 매개변수를 추가하고, 해당 매개변수의 기본값을 설정했습니다.

이제 이 파라미터를 사용하여 경로 매핑 파일을 지정할 수 있습니다. "이미지 편집" 대화 상자에는 이미지의 위치를 정의하는 네 가지 옵션이 있습니다. 아래 스크린샷에서 특정 폴더 경로와 동적 파일 이름을 지정하기 위해 "정적" 및 "동적" 탭을 선택했습니다.

보고서를 생성할 때, 어떤 출력 형식으로든 "routeMapFile" 매개변수에 새로운 값을 지정할 수 있습니다. 만약 새로운 값을 지정하지 않으면, "매개변수 편집" 대화 상자에 정의된 기본값이 사용됩니다.
이제 스타일비전을 배치 모드로 실행하고, 다른 경로 맵 이미지를 사용하는 명령어를 작성할 수 있습니다

또한, 차트 배경을 설정하기 위해 파라미터를 사용할 수 있습니다. 또 다른 명령줄 옵션을 사용하면 스타일시트에 정의된 기존 XML 파일을 대체할 새로운 입력 XML 파일을 선택할 수도 있습니다. 이러한 파라미터와 명령줄 옵션 덕분에 StyleVisionBatch는 동일한 스타일시트를 사용하여 다양한 데이터 세트에 대한 보고서를 생성하는 데 매우 유용한 도구입니다.
다음은 저희가 적용한 모든 XPath 개선 사항이 반영된 아이스 클라이밍 여행 데이터의 HTML 미리보기입니다

GPS XML 파일을 기반으로 자신만의 보고서를 만들거나, 다른 모든 종류의 XML 보고서, 전자 양식 또는 다양한 채널을 통한 콘텐츠 게시 요구 사항을 효율적으로 해결하려면, Altova StyleVision의 무료 체험 버전을 이용해 보세요. (자세한 내용은 여기를 클릭하세요)