>  기사  >  백엔드 개발  >  스키마를 사용하여 XML의 유효성을 검사할 수 없지만 다음에서 작성된 파일을 읽어 작동합니다.

스키마를 사용하여 XML의 유효성을 검사할 수 없지만 다음에서 작성된 파일을 읽어 작동합니다.

WBOY
WBOY앞으로
2024-02-22 12:34:02694검색

无法使用架构验证 XML,但可以通过从中读取写入的文件来工作

질문 내용

현재 lxml을 사용하고 있으며 XML 내용의 유효성을 검사하고 싶습니다.

저는 tei = etree.element("tei", nsmap={none: 'http://www.tei-c.org/ns/1.0'}전체를 Python으로 작성하고 많은 하위 요소를 포함하는 것으로 시작했습니다. p>

이제 다음 코드를 사용하여 특정 .xsd 파일을 사용하여 구조가 올바른지 확인하고 싶습니다.

으아악

false를 반환하고 일치하는 전역 선언에 대해 오류element 'tei':没有可用于验证 root.를 표시합니다

다음을 사용하여 XML을 작성하면 매우 이상한 점을 관찰했습니다. 으아악

결과를 사용하면 xml 구조가 유효합니다 b= etree.parse('test.xml') 重新打开它,我最终没有错误,并且由于 xmlschema.validate(b)

xml 구조에 무엇을 추가해야 하는지 아시나요?

편집자: XML의 첫 번째 항목이 잘못되었습니다

유효한 xml 파일의 첫 번째 항목

편집자:

으아악


정답


https://www.php.cn/link/e1ff36b97044a1c7c73c73e4d27aeba4을 보시면 기본적으로 를 사용하셔야 합니다 으아악

모든 요소가 tei 네임스페이스에 생성되었는지 확인하는 등의 작업이 수행됩니다.

스키마에 유효한 메모리에 생성된 요소 트리(가져온 w3c xml.xsd와 함께 다운로드한 후)는 다음과 같습니다. 으아악

위 내용은 스키마를 사용하여 XML의 유효성을 검사할 수 없지만 다음에서 작성된 파일을 읽어 작동합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제