サンプル試験問題

XMLマスター:プロフェッショナル 試験(アプリケーション開発)

セクション1: DOM/SAX
問題1.

次のDOM(Level 2)のノードのうち、要素ノード(Element)の子ノードにならないノードを選択してください。

A. Element
B. Entity
C. EntityReference
D. Text

サンプル試験問題Indexへ戻る

セクション2: DOM/SAXプログラミング
問題2.

次の[XML文書]を、[SAXによる処理]で示された方法で処理したときの出力結果(printメソッドによる出力)として正しいものを選択してください。

[XML文書]
<!DOCTYPE doc [
  <!ELEMENT doc (#PCDATA | content)*>
  <!ELEMENT content (#PCDATA)>
  <!ENTITY title "&option;ワインの銘柄">
  <!ENTITY option "赤">
]>
<doc><content>タイトルは「&title;」です</content></doc>

[SAXによる処理]
次の「ContentHandlerImpl」クラスを使用し、SAXで処理します。
SAXパーサは妥当性の検証を行いません。
実行時のエラーはないものとします。

class ContentHandlerImpl extends DefaultHandler {
 public void characters(char[] ch, int start, int length) throws SAXException {
 
  System.out.print( new String(ch, start, length) );
 }
}

A. タイトルは「」です
B. タイトルは「&option;ワインの銘柄」です
C. タイトルは「赤ワインの銘柄」です
D. タイトルは「&title;」です

サンプル試験問題Indexへ戻る

セクション3: XSLT
問題3.

次の[XML文書]を、資料ボタンを押して参照される[XSLTスタイルシート]でXSLT変換します。
結果として「234」を出力するために、スタイルシートの(1)に記述するべき正しいものを選択してください。
ただしXSLTプロセッサは、変換結果を文書として出力できるものとします。

[XML文書]
<dummy/>

[XSLTスタイルシート]
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="text" />
 <xsl:template match="/">
  <xsl:call-template name="COUNT">
   <xsl:with-param name="NUM" select="2" />
  </xsl:call-template>
 </xsl:template>

  <xsl:template name="COUNT">
  <xsl:param name="NUM" select="0" />
  --------(1)--------
 </xsl:template>
</xsl:stylesheet>

A.
<xsl:choose>
  <xsl:when test="$NUM &lt; 5">
   <xsl:value-of select="$NUM" />
   <xsl:call-template name="COUNT">
    <xsl:with-param name="NUM" select="$NUM+1" />
   </xsl:call-template>
  </xsl:when>
</xsl:choose>

B.
<xsl:when test="$NUM &lt; 5">
  <xsl:value-of select="$NUM" />
  <xsl:call-template name="COUNT">
   <xsl:with-param name="NUM" select="$NUM+1" />
  </xsl:call-template>
</xsl:when>

C.
<xsl:choose>
  <xsl:when test="$NUM &lt; 5">
   <xsl:value-of select="$NUM" />
   <xsl:param name="NUM" select="$NUM+1" />
  </xsl:when>
</xsl:choose>

D.
<xsl:when test="$NUM &lt; 5">
  <xsl:value-of select="$NUM" />
  <xsl:param name="NUM" select="$NUM+1" />
</xsl:when>

サンプル試験問題Indexへ戻る

セクション4: XML Schema
問題4.

次の[XML文書]の妥当性の検証を行ったときの結果として正しいものを選択してください。
ただしXMLパーサは、XML SchemaのnoNamespaceSchemaLocation属性とschemaLocation属性を正しく処理できるものとします。

[XML文書]
<document xmlns:sec="urn:xmlmaster:document:sec"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="document.xsd"
 xsi:schemaLocation="urn:xmlmaster:document:sec section.xsd">
  <sec:section number="1" name="section1" />
  <sec:section number="2" name="section2" />
</document>

[document.xsd]
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 xmlns:sec="urn:xmlmaster:document:sec">
  <xs:element name="document" type="documentType" />
  <xs:complexType name="documentType">
   <xs:sequence>
    <xs:element ref="sec:section" maxOccurs="unbounded" />
   </xs:sequence>
  </xs:complexType>
</xs:schema>

[section.xsd]
<xs:schema
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 targetNamespace="urn:xmlmaster:document:sec"
 xmlns:tns="urn:xmlmaster:document:sec">
 <xs:element name="section" type="tns:sectionType" />
<xs:complexType name="sectionType">
   <xs:attribute name="number" type="xs:int" />
   <xs:attribute name="name" type="xs:string" />
  </xs:complexType>
</xs:schema>

A. 妥当である
B. XML文書の記述が適切でないため、[XML文書]の「xsi:schemaLocation="urn:xmlmaster:document:sec section.xsd"」を処理するときに処理エラー(最初の処理エラー)となる
C. XML Schema文書の記述が適切でないため、[document.xsd]の「<xs:element ref="sec:section" maxOccurs="unbounded" />」を処理するときに処理エラー(最初の処理エラー)となる
D. 処理エラーはないが、妥当でない

サンプル試験問題Indexへ戻る

セクション5: XML処理システム構築技術
問題5.

次の属性のうち、SOAP 1.1仕様で定義されていない属性を選択してください。

A. actor属性
B. binding属性
C. encodingStyle属性
D. mustUnderstand属性

サンプル試験問題Indexへ戻る

セクション6: XML要素技術の活用
問題6.

資料ボタンを押して参照される[XML文書]を読み込み、次の[DOMによる処理]でXMLを作成します。結果をXML 1.0で表現したものとしてもっとも適切なものを選択してください。ただし結果の改行やインデントは考慮しません。また、処理するXMLにはインデント(改行やタブなどの無意味な空白)は無いものとします。

[XML文書]
<ContactXML xmlns="http://www.xmlns.org/2002/ContactXML" version="1.1"
 creator="http://www.foo.com/bar/meishi-app/1.1">
  <ContactXMLItem>
   <PersonName>
    <PersonNameItem xml:lang="ja-JP">
     <FullName pronunciation="ヤマダ タロウ">山田 太郎</FullName>
     <FirstName pronunciation="タロウ">太郎</FirstName>
     <LastName pronunciation="ヤマダ">山田</LastName>
    </PersonNameItem>
   </PersonName>
  </ContactXMLItem>
  <ContactXMLItem>
   <PersonName>
    <PersonNameItem xml:lang="ja-JP">
     <FullName pronunciation="スズキ イチロウ">鈴木 一郎</FullName>
     <FirstName pronunciation="イチロウ">一郎</FirstName>
     <LastName pronunciation="スズキ">鈴木</LastName>
    </PersonNameItem>
   </PersonName>
  </ContactXMLItem>
</ContactXML>

[DOMによる処理]
次のメソッドでXMLを作成します。
  Document output = createXML( doc, impl );
このとき変数docは、読み込んだXML文書のDocumentインスタンスを参照しています。
また変数implは、DOMImplementationのインスタンスを参照しています。
DOMパーサは名前空間を識別します。
実行時のエラーはないものとします。

public static Document createXML( Document doc, DOMImplementation impl ) {
 String DOCNS = "http://www.xmlns.org/2002/ContactXML";
 String OUTNS = "urn:xmlmaster:GROUP";

 Document output = impl.createDocument( OUTNS, "group", null );
 Element root = output.getDocumentElement();

 NodeList nlist = doc.getElementsByTagNameNS( DOCNS, "PersonNameItem" );
 Element current;
 Element target;
 Element element;

 for (int i = 0; i < nlist.getLength(); i++) {
  current = (Element)nlist.item(i);
  target = (Element)current.getFirstChild();
  element = output.createElementNS( OUTNS, "member" );
  element.appendChild( output.importNode(target, true) );
  root.appendChild( element );
 }
 
 return output;
}

A.
<group xmlns="urn:xmlmaster:GROUP">
  <member>
   <FullName pronunciation="スズキ イチロウ">鈴木 一郎</FullName>
   <FullName pronunciation="ヤマダ タロウ">山田 太郎</FullName>
  </member>
</group>

B.
<group xmlns="urn:xmlmaster:GROUP">
  <member>
   <FullName xmlns="http://www.xmlns.org/2002/ContactXML"
    pronunciation="ヤマダ タロウ">山田 太郎</FullName>
  </member>
  <member>
   <FullName xmlns="http://www.xmlns.org/2002/ContactXML"
    pronunciation="スズキ イチロウ">鈴木 一郎</FullName>
  </member>
</group>

C.
<group xmlns="urn:xmlmaster:GROUP">
  <member>
   <PersonNameItem xml:lang="ja-JP">
    <FullName pronunciation="スズキ イチロウ">鈴木 一郎</FullName>
    <FirstName pronunciation="イチロウ">一郎</FirstName>
    <LastName pronunciation="スズキ">鈴木</LastName>
   </PersonNameItem>
   <PersonNameItem xml:lang="ja-JP">
    <FullName pronunciation="ヤマダ タロウ">山田 太郎</FullName>
    <FirstName pronunciation="タロウ">太郎</FirstName>
    <LastName pronunciation="ヤマダ">山田</LastName>
   </PersonNameItem>
  </member>
</group>

D.
<group xmlns="urn:xmlmaster:GROUP">
  <member>
   <PersonNameItem xml:lang="ja-JP">
    <FullName pronunciation="ヤマダ タロウ">山田 太郎</FullName>
    <FirstName pronunciation="タロウ">太郎</FirstName>
    <LastName pronunciation="ヤマダ">山田</LastName>
   </PersonNameItem>
  </member>
  <member>
   <PersonNameItem xml:lang="ja-JP">
    <FullName pronunciation="スズキ イチロウ">鈴木 一郎</FullName>
    <FirstName pronunciation="イチロウ">一郎</FirstName>
    <LastName pronunciation="スズキ">鈴木</LastName>
   </PersonNameItem>
  </member>
</group>

サンプル試験問題Indexへ戻る

ページトップへ▲

HOMEへ戻る