2017-12-28 46 views
2

텍스트 기반 XML 코퍼에서는 TEI 스키마를 사용하여 다양한 데이터 마크 업을 사용했습니다. 이러한 문서를 PDF로 변환하는 과정의 일부로 변환 할 xsl : fo에 대한 단순화 된 파일로 전처리하고 있습니다. 그 전처리에서 각주 번호를 할당하고 마크 업을 찾고 <sup>incremented integer</sup>을 추가합니다. 이런XSL은 복사본에서 새로운 공백/줄 반환을 방지합니다.

라인이 처리시

<p> 
    <seg> 
    <date type="deposition_date">Item anno et die quo supra</date>. <persName>P Lapassa Senior</persName> testis iuratus idem per omnia quod predictus <persName>Hugo de Mamiros</persName>. 
    </seg> 
</p> 

:

<xsl:template match="tei:date"> 
    <xsl:copy> 
     <xsl:apply-templates select="@*|node()"/> 
    </xsl:copy><sup><xsl:number count="date[@type='deposition_date'" from="tei:p" format="1" level="any"/></sup> 
</xsl:template> 

출력한다 (<sup>의 새로운 라인을 참고)

<p> 
    <seg> 
    <date type="deposition_date">Item anno et die quo supra</date> 
    <sup>1</sup>. <persName>P Lapassa Senior</persName> testis iuratus idem per omnia quod predictus <persName>Hugo de Mamiros</persName>. 
    </seg> 
</p> 

결과 될 때 xsl : fo는 <sup>을 위 첨자로 처리합니다. ta 사이에는 공백이 있습니다. 그래서 같은 rget 및 첨자 :

상품 서기 등 현 문헌 1 다이. P는 Lapassa 고위 testis iuratus idem per omnia quod predictus Hugo de Mamiros 당.

복사 프로세스에서 새로운 줄/캐리지 리턴이 중단되는 것을 방지하는 방법이 있습니까?

추가 정보 : xsl 문서에 <xsl:strip-space elements="*"/>이 있습니다. Saxon PE 9.6 및 HE 9.8에 대해 테스트되었습니다.

미리 감사드립니다.

+1

입력에서 줄 바꿈이 복사 되었습니까? 당신이 제시 한 코드 스 니펫이 입력에서 줄 바꿈을 보지 못한다면, 아마도'xsl : output indent = "yes"'를 사용하여 소개되었을 것이라고 가정하고 싶습니다. –

+0

나는 그것이 당신이 그 일을 해냈다는 것이 놀랍다는 것을 알게되었습니다. 그것은 실제로 범인이었습니다. 추가 질문 : 기술 형식으로 공백이 추가되는 이유는 무엇입니까? 필자가 수동으로 들여 쓰기를하면 코드를 쉽게 읽을 수 있도록 여러 곳에서 동일한 문제가 발생하지 않습니다. 우리의 경험에 많은 도움을 주신 많은 분들께 감사드립니다. – idjet

+0

글쎄요, 다양한 요소에 따라 다르지만, 코드를 들여 쓰기하면 XSLT 안에 쓰게됩니다. 그렇다면 https://www.w3.org/TR/xslt20/#stylesheet-striping을 사용하면 스타일 시트 안의 대부분의 공백이 기본적으로 제거됩니다. 원본 문서의 경우 규칙은 https://www.w3.org/TR/xslt20/#strip과 다릅니다. –

답변

1

들여 쓰기 출력을 원하지만 포함 된 요소의 앞이나 뒤에 공백을 시스템에 넣지 않아도되는 일부 혼합 된 내용의 요소가있는 경우 새 XSLT 3.0 suppress-indentation 속성을 사용하여 제어 할 수 있습니다. 예를 들어, <xsl:output indent='yes' suppress-indentation='p'/>p 요소의 내용 내에 삽입되는 공백을 중지합니다.

+0

고맙습니다. xsl의 처리 옵션 깊이는 배우는 사람에게 약간의 기쁨을줍니다. – idjet

+0

예, 배울 점이 많습니다. 그것이이 사이트가 존재하는 이유입니다. 왜 제가 제 책을 저술 했습니까? –