• ベストアンサー

属性の省略について

khazad-leftyの回答

  • ベストアンサー
回答No.2

一般的には間違いになるはずです。 デフォルトにたとえば"AAA"という文字を設定した場合、 下の場合は当然"AAA"が入りますが、うえの場合は明示的に""(空の文字)を設定しているため、""が入るはずです。

noname#37358
質問者

お礼

ご回答ありがとうございます。 要するに、「未定義値」と同じ概念という事ですね。 No.1の補足にも書いたのですが、手持ちの書籍などには、そこら辺の所が書かれてなかったので、不安になっていました。 時間があれば、手持ちのXMLパーサーを使って確認したいと思います。

関連するQ&A

  • OpenLDAPの”uid”属性について質問です。

    OpenLDAPの”uid”属性について質問です。 【環境】 RHEL5(64-bit) OpenLDAP2.3.43 【質問内容】 OpenLDAPを認証サーバとして、Webアプリケーションを構築しようと考えています。 ユーザID:オブジェクトクラスinetOrgPersonにおける”uid”属性 パスワード:オブジェクトクラスPersonにおける”userPassword”属性 で作成していますが、1点困っています。 ユーザIDに大文字小文字の区別がされないのです。 この件、調べてみたところ、 uid属性の等価比較する場合のルール(EQUALITY)が 、大文字/小文字を区別しない 状態になっているのでは?と考えました。 OpenLDAP(に標準添付されるスキーマ定義ファイル)のデフォルト値としても EQUALITY caseIgnoreMatch となっているようです。 そこで、/etc/openldap/schema/core.schema の内容を確認したところ、 該当箇所は以下のようになっていました。 #attributetype ( 0.9.2342.19200300.100.1.1 # NAME ( 'uid' 'userid' ) # DESC 'RFC1274: user identifier' # EQUALITY caseIgnoreMatch # SUBSTR caseIgnoreSubstringsMatch # SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) また、他のスキーマ定義ファイルを見ても属性uidを定義している箇所は 存在しておりませんでした。 ここで疑問なのは、 ・属性uidの定義箇所はコメントアウトされており、未設定に見える ・ですが、大文字小文字の判断の問題はあれど、属性値としてのuidは  登録できているように見える です。 ・未記載の場合に適用されるデフォルト値があり、そちらを参照している 等あるのでしょうか? 最終的に当方が実施すべきと考えていることは、属性uidに対し EQUALITY caseExactMatch を実施する、とかんがえておりますが、上記の通りその実施箇所が わからなくなっております。 以上、ご存じの方がいらっしゃれば御回答頂きたく存じます。 (参考) slapd.confにて以下のように定義しており、他のスキーマ定義ファイルを 参照していることは無いと認識しております。 include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/nis.schema include /etc/openldap/schema/その他、独自スキーマ また、全てのスキーマ定義ファイルについて、キーワード”uid”で検索し、 有意な設定箇所が無いことを確認しております。

  • XMLファイルからXML Schemaを参照する方法?

    XMLファイルの設計をしています。 今まではDTDを使っていたのですが、 勉強するとXML SchemaのほうがXMLの規則にそっていたり、 データ型が多かったりして都合が良い面があると学びました。 そこでXML Schemaを使いたいと思うのですが、 XML SchemaとメインのXMLのファイルはどのように関係させたら良いのでしょうか? DTDのときは以下のように書いていたと思います。 <!DOCTYPE root SYSTEM "sample.dtd" > このような記述をXML Schemaのときには、どのように記載するのだろうと 疑問に思いました。 私なりに調べてみたのですが、 XML Schemaの記述方法は、大まかに理解したのですが、 関係方法をどうすれば良いかは、見つけられませんでした。 本を読んでも、書かれているように思えません。 以下の2つのファイルがあった場合、 【element1.xml】は妥当なXML文書だそうですが、 どのように関連付いているのでしょうか? 【element.xs】 <?xml version="1.0" encoding="Shift_JIS" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <!-- 要素宣言 --> <xs:element name="売上高" type="xs:integer" /> </xs:schema> 【element1.xml】 <?xml version="1.0" encoding="Shift_JIS" ?> <売上高>1000</売上高> もしよろしければ、教えて頂けませんか? ぜひご教示お願いいたします。

    • ベストアンサー
    • XML
  • DTDファイルをクラスパスから読み込みたい

    DTDを利用したXMLファイルを読み込むDOMパーサーを作ってます。 表題のとおり、DOMパーサーがXMLファイル、DTDファイルを読み込む際に DTDファイルをローカルマシン(実行環境)のクラスパスにあるディレクトリ から読み込みたいのですがうまくいきません。 XMLパーサーにxercesを利用し、DOMを使ってます。 例えば、 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pagecontrol SYSTEM "sample.dtd"> <PEOPLE> <NAME>afternoon_cafe</NEME> </PEOPLE> のようなXMLファイルを、DOMパーサーがparse()メソッドによりロード すると、"sample.dtd"をカレントディレクトリからしか検索しません。 この"sample.dtd"をクラスパスにあるディレクトリに置き、それを 読み込むようにしたいのですが、、、 どなたかわかる方がいれば、教えてください。 お願いします。

    • ベストアンサー
    • XML
  • DTDとXML Schemaでのデフォルト値の指定について

    以下のようなXMLをパーズするプログラムがあります。 ------------------------------------------------------------------ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); dbf.setValidating(true); DocumentBuilder documentBuilder = factory.newDocumentBuilder(); Document doc = documentBuilder.parse(new InputSourc("a.xml")); ------------------------------------------------------------------ a.xmlに以下のようなXMLの構造をDTDで指定した場合のxmlをパーズさせると、 <!DOCTYPE a [ <!ELEMENT a (#PCDATA)> <!ATTLIST a a1 CDATA "abc"> ]> <a/> 上記のプログラム3行目のvalidationの設定がtrue、falseに関わらす、 <a a1="abc"/> というような形式のドキュメントオブジェクトが返ってきます。 ですが、以下のようにXMLの構造をXML Schemaで定義した場合、 a.xml <a xsi:noNamespaceSchemaLocation="b.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> b.xsd <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="a"> <xsd:complexType> <xsd:attribute name="a1" type="xsd:string" default="abc"/> </xsd:complexType> </xsd:element> </xsd:schema> 返ってくるドキュメントオブジェクトのa要素には、validationがtrueの場合はa1属性が含まれる、falseの場合は含まれません。 これは正しい動作なのでしょうか? また、XML Schemaの場合もvalidationがtrue、falseに関わらず、 デフォルト値が指定された属性を含めることはできないのでしょうか?

    • ベストアンサー
    • XML
  • targetNamespaceは不要?

    xmllint.exeを使い、XML Schemaの動作実験をしています。 が、下記 XML Schemaでどうしてもエラーが出て頓挫しています。 その解決方法を伺っても宜しいでしょうか? エラーの具体的な内容は、TestElement要素の型がおかしいとの事した。 <?xml version="1.0" encoding="UTF-8" ?> <xsd:schema version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="test_namespace"> <xsd:simpleType name="MyByte"> <xsd:restriction base="xsd:byte"/> </xsd:simpleType> <xsd:element name="TestElement" type="MyByte"/> </xsd:schema> 尚、targetNamespace属性を除去するとエラーが出なくなります。が「この属性は使うべき」とあるHPに書いてあった為、困っております。 どうか宜しくお願い致します。

    • ベストアンサー
    • XML
  • XML の属性部分を JavaScript で表示したい (誤動作してます)

    初心者です。XML の属性を JS で表示したいのですが属性の表示をJSで記入すると属性部分(?)が「null」と表示されるだけで元の XML の内容が正しく反映されません。何が間違っているのかご教示いただけると有り難いです。宜しくお願いします。 ---XML-[orders.xml]------------------ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE orders SYSTEM "orders.dtd"> <orders> <order> <customerid limit="1000">1111111</customerid> <status>発送済み</status> <item instock="Y" itemid="SA15"> <name>商品名ABC</name> <price>825.00</price> <qty>1</qty> </item> </order> </orders> ---/XML------------------- ---DTD--[orders.dtd]----------------- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE orders SYSTEM "orders.dtd"> <orders> <order> <customerid limit="1000">1111111</customerid> <status>発送済み</status> <item instock="Y" itemid="SA15"> <name>商品名ABC</name> <price>825.00</price> <qty>1</qty> </item> </order> </orders> ---/DTD------------------- ---html--[hoge.html]----------------- <?xml version = "1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns = "http://www.w3.org/1999/xhtml"> <head> <title>A Parser Test</title> <script type="text/javascript"> var tab="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" function printElement(indent, node) { var i; if (node.nodeType == 3) {document.write("<br />" +indent + node.nodeValue); document.write("<br />" +indent + "attributes: "+ node.attributes);} <!--この1行を足しました。誤動作しています(TT)--> else { document.write("<br />" +indent + "[" + node.Name + "]"); for (i = 0; i < node.childNodes.length; i++) { printElement(indent+tab, node.childNodes[i]); } document.write("<br />" +indent + "[/" + node.nodeName + "]"); } } var xmlDoc = new ActiveXObject("Microsoft.XMLDOM") xmlDoc.async="false" xmlDoc.load("orders.xml") if (xmlDoc.parseError.errorCode != 0) { document.write("<br />Error Code: "); document.write(xmlDoc.parseError.errorCode); document.write("<br />Error Reason: "); document.write(xmlDoc.parseError.reason); document.write("<br />Error Line: "); document.write(xmlDoc.parseError.line); document.write("<br />"); } else { document.write("<strong>ファイルはパーサーを通りました</strong><br />"); document.write("<p /><h1>ツリー構造の表示</h1><p />") printElement("", xmlDoc.documentElement); } </script> </head> <body> </body> </html> ---/html-------------------

    • 締切済み
    • XML
  • IEでのalt属性ポップアップ表示について

    img属性でカーソルをのっけた時にポップアップで表示される文字がありますよね? 普通はtitle属性の文字がそこに反映されるわけですが、IEの仕様ではalt属性でも表示されます。 ただ、同じalt属性だけでも IE上でポップアップ表示されるサイトとされないサイトがあります。 宣言の違いかと思い両方のソースを見ました。 共通で <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> になっています。 なぜか片方のサイトはalt属性だけで表示 片方はaltでは表示されない。 この違いは何なんでしょう CSSで設定でもしてるのでしょうか? また、ポップアップされてなくても 通常は出ないのが普通、というかソースには書いてあるので SEO上は問題ないですよね? よろしくお願いします。

    • ベストアンサー
    • HTML
  • 同じid属性を何回も使ってはいけないの?

    「Another HTML-lint gateway」(個人のサイトっぽいのでリンクは貼りません)というHTMLの文法チェックサイトで、<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">として文書をチェックしたところ、id属性が重複して使用されているのが良くないという結果が出ました。 具体的にはHEAD内にstyle定義として、仮に「#td1 td{ スタイルの内容 } 」という属性を書き、その属性を反映させたいテーブルに「id="td1"」を付けました。全く同じ処理をしたいテーブルがたくさんあるのでそれらにも全て「id="td1"」を付けたところ、上記チェックでダメだしを食らったというわけです。 id属性は、同じように処理したい箇所を、ひとつ定義を作ることによって全て同じように処理を適用するものだと思ってるんですが、そういうものではないんですか? また、同じような属性としてclassも同様なのでしょうか?

    • ベストアンサー
    • HTML
  • 属性リスト宣言

    以下がxmlファイルです。 --------------------------------------------- <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE 製品管理 SYSTEM "s1.dtd"> <製品管理> <製品 製品番号="001"> <名前>シューズ</名前> <SKU 倉庫="ABC" 単価="10000" /> </製品> </製品管理> --------------------------------------------- <?xml version="1.0" encoding="Shift_JIS"?> <!ELEMENT 製品管理 (製品)*> <!ATTLIST 製品 製品番号 ID #REQUIRED> <!ELEMENT 製品 (名前|SKU)*> <!ELEMENT 名前 (#CDATA)*> <!ELEMENT SKU entity> <!ATTLIST SKU 倉庫 NMTOKENS #REQUIRED SKU 単価 CDATA #REQUIRED> --------------------------------------------- 補足 製品番号 属性:ID型 名前   要素:文字データ SKU    空 倉庫   属性:NMTOKENS型 単価   CDATA型 この外部サブセットではダメでした。 ヒントでも何でもお待ちしております。m(._.)m

    • ベストアンサー
    • XML
  • xmlの属性が重複しているのをxslで変換して表示するにはどうすればいいですか??

    xmlの属性が重複しているのをxslで変換して表示するにはどうすれば良いのでしょうか?? [ xml ] <content> <text>データ1</text> <text>データ2</text> </content> <content> <text>データ3</text> <text>データ4</text> </content> 上記のようなプログラムがあったとして、これを [html] <p>データ1</p> <p>データ2</p> <p>データ3</p> <p>データ4</p> という形で出力したいのですが、どのような xsl プログラムを書けばよいでしょうか?? xml ファイルの方は変更することができません。 ご教授よろしくお願いします。

    • ベストアンサー
    • XML