XML 파서는 불평하지 않지만 XMLeditor는 빈 속성에 대해 불평합니다.

StackOverflow https://stackoverflow.com/questions/1404218

  •  05-07-2019
  •  | 
  •  

문제

XSL-FO(org.apache.fop.apps.Driver)를 사용하여 XML 파일에서 PDF 인쇄를 생성하는 프로그램이 있습니다.

저는 스타일시트(xsl) 작업을 하고 있으며 디버깅을 더 쉽게 만들려고 노력하고 있습니다.XML과 XSL 파일이 있습니다. 이제 XSL 파일을 작업하는 동안 편집자가 생성된 PDF를 보여주기를 원합니다.

여러 편집자를 사용해 보았지만 프로그램에 문제가 없는 것 같은 오류가 발생했습니다.

문제는 편집자가 다음을 기대한다는 것입니다.

<ATTRVALUE attribute_id="92" attrname="Date Required" attr_value="" />

프로그램이 생성하는 실제 XML은 다음과 같습니다.

<ATTRVALUE attribute_id="92" attrname="Date Required" attr_value />

보시다시피 빈 attr_value에는 ="" - 편집자를 덜 엄격하게 만드는 방법이 있나요?그럼 내가 가지고 있는 프로그램처럼 PDF를 생성할 수 있나요?

도움이 되었습니까?

해결책

<ATTRVALUE attribute_id="92" attrname="Date Required" attr_value />

이전에 언급한 것처럼 해당 줄은 유효하지 않습니다.괜찮다고 생각하는 프로그램은 아마도 이러한 유효하지 않은 속성을 무시하는 자체 사용자 정의 XML 파서를 사용하고 있을 것입니다.그 프로그램을 만든 사람들의 프로그래밍 자질이 의심스럽습니다.내가 보기엔 그들은 단지 XML-DOM 메커니즘을 통해 이 XML을 텍스트로 작성하고 있는 것 같습니다.그래도 괜찮겠지만 불행하게도 그들의 코드에는 버그가 있습니다.

전부는 아니더라도 대부분의 XML 편집기, 파서 및 변환기는 XML을 처리하기 전에 유효성을 검사합니다.따라서 불행하게도 XSLT 파일 내에서 이 문제를 해결할 수 있는 좋은 해결책은 없습니다.RegEx를 사용하면 유효하지 않은 속성을 제거하거나 속성에 =""를 추가하여 유효하게 만들 수 있지만 XSLT가 XML의 유효성을 검사하기 전에는 이를 수행할 수 있는 방법이 없습니다.

이를 해결하려면 유효한 XML을 생성하도록 프로그램을 변경해야 합니다.왜냐하면 지금 당장 이것은 매우 심각한 버그로 간주될 수 있기 때문입니다.(프로그램이 내부 목적으로 이 가짜 XML을 사용하지 않는 한)

다른 팁

attr_value와 no =가있는 XML이 유효하지 않습니다. W3C XML 사양 따라서 모든 XML 도구는 불평해야합니다. 어떤 도구를 사용하고 있습니까?

좋아, 방금 정규 표현식 찾기 및 모든 속성 이름을 대체했습니다. 순간

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top