2016-11-14 7 views
-1

사용자가 트랙이 저장된 .xml 파일을 그림으로 작성할 수있는 C++ 프로그램이 있습니다. 기본적으로 이러한 파일은 pgixml이 읽을 수 있도록 사소한 변경 사항이있는 .gpx 파일입니다. 사용자가 선택한 파일의 형식이 올바른지 확인하려면 어떻게해야합니까? 예를 들어, <name>Track x이고 노드 이름이 올바른 것이 중요합니다. 이 같은 파일의 예입니다XML 파일의 유효성을 검사하는 쉬운 방법

<?xml version='1.0' encoding='UTF-8'?> 
<trk> 
    <name>Track 1</name> 
    <trkseg> 
     <trkpt lat="48.08162894291554" lon="11.274891365644537"> 
     </trkpt> 
     <trkpt lat="48.08167553246409" lon="11.274872590181431"> 
     </trkpt> 
    </trk> 
    <trk> 
    <name>Track 2</name> 
    <trkseg> 
     <trkpt lat="48.08162939089216" lon="11.274952385899628"> 
     </trkpt> 
    </trkseg> 
</trk> 

.xml 파일의 형태를 확인하는 쉬운 방법이 있나요? 아니면 수동으로 확인해야합니까? wikipedia

두 가지 검증 방법은 파서에 의해 처리되어야하는 XML 스키마를 사용하여 <!DOCTYPE … >wikipedia,

  • 를 사용

    • :

  • 답변

    1

    나는 두 xml 파일을 확인하는 방법을 알고있다. 선택할 수있는 방법은 유효성 검사에 필요한 세분화 수준에 따라 달라 지므로 XSD (스키마)가 더 정교 해지고 사용할 수있는 수준으로 결정됩니다. 따라서 DTD (Doctype Definition)를 사용할 수있는 경우이를 사용하는 것이 더 쉽습니다. 유효성 검사를 수행하는 코드를 작성할 수도 있지만, "쉬운 방법"이라고 생각하지는 않습니다.

    +0

    멍청한 질문 @philipp에 대해 유감이지만 DOCTYPE은 어떻게 사용합니까? 나는 '부분 아래에''을두고'doctypedefinition.dtd'라는 이름의 별도의 파일을 작성합니다. 어느 노드가 순서대로 올지를 지정합니다. – Lehue

    +0

    그리고 나서 문서가'Root'라는 doctype을 사용한다면'node_doctype'을 검사해야한다고 pugixml에 알려 주겠습니까? – Lehue

    +0

    @ A.Hue U가 실수로 독일어에 있었기 때문에 위키피디아 링크를 업데이트했습니다. 거기에서 세부 정보를 찾을 수 있습니다. 여기에 모든 세부 사항을 설명하기에는 너무 많은 종류가 될 것입니다 – philipp