2009-11-09 5 views
-1

저는 XML을 처음 접했습니다. 누군가이 코드가 정확히 무엇을해야한다고 말 할 수 있습니까?DTD 스키마를 이해하는 데 도움이 필요합니다.

<?xml version="1.0" encoding="ISO-8859"?> 
<!DOCTYPE person [ 
    <!ELEMENT first_name(#PCDATA)> 
    <!ELEMENT last_name(#PCDATA)> 
    <!ELEMENT PROFESSION(#PCDATA)> 
    <!ELEMENT name(first_name, last_name)> 
    <!ELEMENT person (name, profession)>]> 
<person> 
    <name> 
     <last_name>Jack</last_name> 
     <last_name>Jill</last_name> 
    </name> 
</person> 
+0

여기에서 묻고있는 것에 대해 좀 더 간결하게 제목을 편집하십시오 ... – ChristopheD

답변

4

이것은 삽입 된 DTD로 어떤 요소가 어떤 순서로 허용되는지를 지정합니다 (예 : "name"요소는 last_name 뒤에 last_name을 포함해야합니다.

이것은 관례에 벗어나는 방법이지만 유효해야합니다. 일반적으로 DTD는 원본 문서에 포함되지 않고 외부 파일입니다.

+0

안녕하세요. 고마워요. 다시 나입니다. 코드가 error.thanks없이 실행되도록하기위한 변경 사항을 알려주십시오. – Selom

+0

XML 문서를 "실행"하지 마십시오. 너는 너의 문제가 뭔지도 말하지 않았어. – skaffman

+0

답장을 보내 주셔서 감사합니다. 위의 코드가 잘 형성되었다고 말할 수 있습니까? 그 이유는 무엇입니까? 답장을 보내 주셔서 감사합니다. – Selom

8

이는 XML 파일이며 자체적으로 아무 것도 수행하지 않습니다. 대신 두 개의 성을 가진 "사람"을 정의하는 것처럼 보입니다 (단, DTD는 이름과 성을 모두 표시하므로 파일이 유효하지 않습니다).

1

xml 문서는 먼저 프롤로그 (<?xml)를 가져 XML 문서임을 나타냅니다. 선택적인 DOCTYPE이 정의된다. 이것은 기본적으로 문서의 모든 가능한 요소와 속성의 목록이며, 실제 문서 자체는 person이 루트 노드이고 name이 첫 번째 자식이며 last_name 노드 .

name 아래의 첫 번째 노드는 last_name이 아니라 first_name이어야한다고 생각합니다.

관련 문제