2011-05-14 3 views
1

XML을 처음 사용하는 경우 XML 문서를 작성하고 Visual Studio를 사용하여 스키마를 자동 생성합니다. 나는 원래 내 자신의 스키마를 작성하기 시작했다. 내 질문에 구현할 수있는 결함이나 개선 사항이 있습니까? 유형, 요구 사항 및 발생 유효성 검사가 있습니다. 단지 궁금한 점이 있습니다.XML 스키마/XML 문서 구조 - 올바르게 작성 됨

XML

<?xml version="1.0" encoding="utf-8" ?> 
<university> 
<lesson id="ms434"> 
    <subject>Biology</subject> 
    <maintopic name="Human Biology"> 
    <subtopic>Enlarge Hearts</subtopic> 
    <subtopic>Heart Valves</subtopic> 
    </maintopic> 
    <content> 
    <sentance>Very long sentance one</sentance> 
    <sentance>Very long sentance two</sentance> 
    <sentance>Very long sentance three</sentance> 
    </content> 
</lesson> 
</university> 

스키마

<?xml version="1.0" encoding="utf-8"?> 

<xsl:template match="@* | node()"> 
    <html> 
    <body> 
     <h1>Professional Training Facilities</h1> 
     <p> 
     <strong>University: </strong> 
     <xsl:for-each select="university/lesson">   
     <xsl:value-of select="subject"/> 
     </p> 
     <br/> 
     <p> 
     <strong>Main Topic: </strong> 
     <xsl:value-of select="maintopic=name"/> 
     </p> 
     <br/> 
     <p> 
     <strong>Sub Topics: </strong> 
     <xsl:for-each select="maintopic"> 
      <p> 
      <xsl:value-of select="subtopic"/> 
      </p> 
     </xsl:for-each> 
     </p> 
     <p></p> 
     <strong>Content:</strong> 
     <xsl:for-each select="content"> 
     <p> 
      <xsl:value-of select="sentance"/> 
     </p> 
     </xsl:for-each> 
     </xsl:for-each> 
     <br/> 
    </body> 
    </html> 
</xsl:template> 

필자는 스키마를 수동으로 거의 완료했을 때 코드가 적었을 것이라고 확신합니다. 자동 생성이 과도합니까?

편집 : 문제를 해결하는 첫 번째 문장에 대한 foreach 오류가 수정되었습니다.

답변

0

스키마는 문서 클래스에 대한 설명입니다. 단일 문서에서 생성 된 스키마는 추측입니다. 예를 들어, 모든 레슨 요소의 길이 속성이 정수인 경우 도구는 항상 정수가 될 것이라고 추측하고 xs : integer 유형을 지정합니다. 하지만 좀 더 정확하고 유형을 30에서 60까지의 정수로 만들 수 있습니다. 또는 도구가 원하는 것보다 더 제한적일 수 있습니다. 아마도 ID가 항상 5 자 길이라는 것을 추측 할 수 있습니다. 단지 사고 일뿐입니다 샘플 데이터 따라서 이와 같은 스키마 생성 도구를 사용할 때마다 출력을 확인하고 샘플 만이 아닌 문서 클래스를 설명하도록 출력을 변경해야합니다.

VS 도구를 모르지만 많은 도구에는 스키마가 생성되는 스타일에 대한 옵션이 있습니다. 로컬 요소 선언과 전역 요소 선언 서로 다른 산출물이 동일 할 수도 있지만, 그 중 일부는 구성 요소를 더 많이 재사용하거나 수정하기가 더 쉽습니다. 다양한 옵션을 시험해 볼 가치가 있습니다.