저는 C++에서 부합하고 유효성을 검사하는 XML 파서를 작성하고 포켓 PC 용으로 경량화하려고합니다. 시작시 XML 구문 분석 및 사용
나는 등 SAX처럼 내 파서 않는 요소에 대해 알리고, 처리 명령, 일부 "이벤트"를 추가하기로 결정 이 이벤트는의 DOM 트리를 구축 파생 클래스에서 촬영xml.
주로 엔티티 (정의 된 경우 요소, pi 및 주석을 포함 할 수 있음) 및 해당 해상도를 처리 할 때 의문의 여지가 있습니다.
예를 들어 .NET system.xml 파서와 마찬가지로 일부 XMLDocType 객체에 정의 된 일부 XMLEntity를 참조하는 XMLEntityRef 클래스를 만들 수 있습니다.
대부분의 목적을 위해 응용 프로그램은 요소, 해당 내용, 해당 특성 및 해당 값을 알고 있어야합니다. 문자열 만 ... 요소 내용이 cdata로 구성되는지는 신경 쓰지 않습니다. 객체, 엔티티 참조 및/또는 일반 텍스트 ... 속성 값에도 동일하게 적용됩니다.
그래서 내 질문은 다음과 같습니다. 응용 프로그램에 나타나는 각 xml 개체를 전달하고 텍스트 또는 텍스트를 연결하여 결과 속성 값을 빌드하도록 (또는 도우미 클래스를) 보내도록하는 이점은 무엇입니까? 해결 된 엔티티 참조?
설문 조사를 작성한 경우, 애플리케이션에서 cdata 태그 및 XML 파일에있는 위치에 대해 알아야하는지 또는 쉬운 일을하는지 ... 전체 콘텐츠 값을 알고 싶습니다. 문자열을 구성하는 요소에 대해 걱정하지 않고 문자열을 구성 할 수 있습니까?
안부,
글쎄 ... 가벼운 무게로 일부 구현에서 코드의 차이를 시각화하려고했습니다. Xerces 코드 (io 물건 제외)는 system.xml의 mono.net 구현보다 큽니다. 하지만, 당신이 말한 것처럼, 하나는 완전히 돔 수준 3 호환 파서를 만들 수 있습니다. 음 ... 어떤 종류의 응용 프로그램이 xml 편집기를 제외하고 DOM 구조를 실제로 활용합니까? –
유감스럽게도 XML 문법을 최소한으로 충족시키기 위해서는 대부분의 털이 많은 DTD를 구현해야합니다. SGML에서 쓸데없는 DTD 헛소리를 너무 많이 끌어온 것은 수치스러운 XML입니다. 가벼운 작업을위한 표준 XML 간소화 된 서브 세트, 기본 속성 및 모든 엔티티와 함께 모든 doctype을 삭제하고 루트 요소에서만 네임 스페이스 선언을 허용하는 것이 좋습니다. – bobince
예 ... 가벼운 사양이 있어야합니다 ... 감사합니다. –