• ベストアンサー

内容にテキストを持つタグの属性をXMLSchemaで表現するには?

すみませんXML初心者です。質問をさせてください。 以下に示すXML文書についてのXMLSchemaは、どのように表現したらよいのでしょうか?教えてください。 よろしくお願いします。 <?xml version="1.0" encoding="Shift_JIS" ?> <root> <sub a="a">テスト</sub> </root>

  • XML
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
noname#20377
noname#20377
回答No.1

<?xml version="1.0" encoding="Shift_JIS" ?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="root" type="rootType" /> <xsd:complexType name="rootType"> <xsd:complexContent> <xsd:restriction base="xsd:anyType"> <xsd:sequence> <xsd:element ref="sub" /> </xsd:sequence> </xsd:restriction> <xsd:complexContent> </xsd:complexType> <xsd:element name="sub" type="subType" /> <xsd:complexType name="subType"> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="a" type="xsd:string" /> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:schema> かな?多分。

re-entry
質問者

お礼

himajin3500様へ 大変参考になりました。 ありがとうございます。 自分の勉強不足を痛感しました。

関連するQ&A

  • XSLで、XMLの空タグを制御したい。

    値がないXML文書に、 <exsample /> こう書かれてしまうものを、 <exsample></exsample> このように出力したいのですが、出来ずでした。 以下は、私のやり方です。 ■ XSL <?xml version="1.0" encoding="Shift_JIS"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xalan="http://xml.apache.org/xslt"> <xsl:output method="xml" encoding="Shift_JIS" indent="yes" xalan:indent-amount="4"/> <xsl:template match="/"> <xsl:copy-of select="."/> </xsl:template> </xsl:stylesheet> ■ XML <?xml version="1.0" encoding="Shift_JIS"?> <root> <section> <category> <exsample1>value</exsample1> <exsample /> </category> </section> </root> ご教授、よろしくお願いいたします。

    • ベストアンサー
    • XML
  • 妥当なXML文書

    XML文書で、下記のあ)い)で、妥当なXML文書は あ)になります。 では、い)は妥当ではないとしたら、どの部分が妥当ではないでしょうか。 これが理解できずに困っています。 <a/>は親要素にならないのでしょうか。ルートになるからでしょうか。 よろしくお願いします。 あ) <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE a [ <!ELEMENT a (b?)> <!ELEMENT b (#PCDATA)> ]> <a/> い) <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE a [ <!ELEMENT a (b?)> <!ELEMENT b (#PCDATA)> ]> <a/><b/>

    • ベストアンサー
    • XML
  • 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
  • [Perl]XML::SimpleでSJIS

    Windows7、ActivePerl v5.24.1を使っています。 use XML::Simple; use Data::Dumper; my $data = XMLin('test.xml'); print Dumper($data); というコードで、以下のXMLファイルを読み込むと、 <?xml version="1.0" encoding="shift_jis"?> <root> <top id="1234"> <second>値</second> <third> <fourth>1234</fourth> <fifth>myvalue</fifth> </third> </top> </root> Couldn't open encmap shift_jis.enc: No such file or directory at C:/Perl/lib/XML/Parser.pm line 187. XML::Simple called at read_xml_test.pl line 10. というエラーがでます。 ググると、以下のサイトで解決できたという記事がヒットしますが このサイトはもう存在しません。 Perl XMLでencoding=’Shift_JIS’や’euc-jp’を使う http://homepage3.nifty.com/hippo2000/perltips/xml/xmlenc.htm なにかコード間のマップファイルと思われますが、 どなたかお持ちじゃないでしょうか?

  • XML文書の追加書き込みは可能?

    毎回お世話になります。 今回の質問なのですが、あるXML文書に新しいデータ(タグ+データ+タグ)をどんどん追加していきたいのですが、いい方法はないでしょうか? たとえば、 <?xml version="1.0" encoding="Shift_JIS" ?> <test> <url></url> <url></url> : : <url></url> </test> といった具合に、<url>をどんどん増やしていきたいのです。 回答よろしくお願いします。

    • ベストアンサー
    • Java
  • Cの文字列操作

    VC6で正規表現を使って以下のXMLから-23の値を取得するつもりですが、 これを正規表現で書く場合、以下のようにすれば良いでしょうか? <?xmlversion="1.0"encoding="SHIFT_JIS"?> <TEST>-23</TEST> char ptn[] = "^<\?xmlversion="""1.0"""encoding="""SHIFT_JIS"""\?><TEST>(-?[0-9]+?)</TEST>$"; この前に、xmlを文字列置換(タブ・スペース・改行等を空文字に置換)させたいのですが、C言語ではどのようにすれば良いのでしょうか? phpでは、 str_replaceを使いますが・・・ ちなみに正規表現ライブラリは、これを使う予定です。 http://www.sip.eee.yamaguchi-u.ac.jp/kou/regex.html

  • XMLの属性について。

    XML,DTD,XSLの勉強をしています。 最終的に写真が表示され、その下に「PM 7:30」もしくは「19:30」と表示するようなページを作ろうと思っているのですが、属性の意味がよく理解できておらず下の3つのうちどれを採用したらいいか悩んでいます。どれが正解というか、どれを選ぶのがいい方法なんでしょうか? また、その理由(属性について)教えて頂けないでしょうか?具体的には次の2つが疑問点です。 1. 写真を表示するのに、写真のアドレスを属性にする理由はなんとなく分かるような気がするにですが、いまいちはっきりした理由が理解できていません。 DTDを<!ELEMENT アルバム (#PCDATA) >にして、XMLを<アルバム>0101.jpg</アルバム>でも写真の表示は可能なのでしょうか? 2. 一番の疑問点なのですが、時間を(#PCDATA)にするのか、EMPTYにして属性で CDATA にするべきなのかがよく分かりません。 (「分」も属性値にしてしまった方がいいのでしょうか?) (xslは、まだ作成していません。) よろしくお願い致します。 具体例↓ 3つ 「arubamu.dtd」 <?xml version="1.0" encoding="Shift_JIS"?> <!ELEMENT アルバム (時,分) > <!ATTLIST アルバム file CDATA #REQUIRED > <!ELEMENT 時 EMPTY > <!ATTLIST 時 ampm (am|pm) "am" > <!ATTLIST 時 time CDATA #REQUIRED > <!ELEMENT 分 (#PCDATA) > 「アルバム.xml」 <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE アルバム SYSTEM "arubamu.dtd"> <アルバム file = "0101.jpg" > <時 ampm = "pm" time = "7" /> <分>30</分> </アルバム> ------------------------------------------------------------------ 「arubamu2.dtd」 <?xml version="1.0" encoding="Shift_JIS"?> <!ELEMENT アルバム (時) > <!ATTLIST アルバム file CDATA #REQUIRED > <!ELEMENT 時 EMPTY > <!ATTLIST 時 ampm (am|pm) "am" > <!ATTLIST 時 time CDATA #REQUIRED > <!ATTLIST 時 minute CDATA #REQUIRED > 「アルバム2」 <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE アルバム SYSTEM "arubamu2.dtd"> <アルバム file = "¥0101.jpg" > <時 ampm = "pm" time = "7" minute = "30" /> </アルバム> ------------------------------------------------------------------- 「arubamu3.dtd」 <?xml version="1.0" encoding="Shift_JIS"?> <!ELEMENT アルバム (時,分) > <!ATTLIST アルバム file CDATA #REQUIRED > <!ELEMENT 時 (#PCDATA) > <!ATTLIST 時 ampm (am|pm) "am" > <!ELEMENT 分 (#PCDATA) > 「アルバム3.xml」 <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE アルバム SYSTEM "arubamu3.dtd"> <アルバム file = "0101.jpg" > <時 ampm = "pm">7</時> <分>30</分> </アルバム>

    • ベストアンサー
    • XML
  • VBAでXMLを出力するプログラムを作成する際の名前空間接頭辞の付与の仕方について

    今、Excel付属のVBAを使用して、XMLを作成するプログラムを作成しております。 その際、名前空間(及び接頭辞)を付与したいのですが、方法が分からず苦慮しております。 VB.NET等での方法はわかったのですが、職場の開発環境上、VBAでなんとか対応したいところです。 もし何かご存知の方、いらっしゃいましたら、どうか教えていただきたく、よろしくお願いいたします。 ===作成したいXML=== <?xml version="1.0" encoding="Shift_JIS" ?> - <Root> - <YOUSO xmlns:BBB="http://aaa.aa.aaa"> <YOSO2>AAAAAAA</YOSO2> </YOUSO> </Root> ===現在このようなXMLになってしまっております。=== <?xml version="1.0" encoding="Shift_JIS" ?> - <Root> - <YOUSO xmlns="http://aaa.aa.aaa"> <YOSO2 xmlns="">AAAAAAA</YOSO2> </YOUSO> </Root> ===作成したコード=== Sub TEST() Dim xmlDoc As MSXML2.DOMDocument Dim xmlPI As IXMLDOMProcessingInstruction Dim node(3) As IXMLDOMNode Set xmlDoc = New MSXML2.DOMDocument 'XML宣言 Set xmlPI = xmlDoc.appendChild(xmlDoc.createProcessingInstruction("xml", "version=""1.0"" encoding=""Shift_JIS""")) '<Root>要素 Set node(1) = xmlDoc.appendChild(xmlDoc.createNode(NODE_ELEMENT, "Root", "")) '<YOSO1>要素 Set node(2) = node(1).appendChild(xmlDoc.createNode(NODE_ELEMENT, "YOUSO", "http://aaa.aa.aaa")) '<YOUSO2>要素 Set node(3) = node(2).appendChild(xmlDoc.createNode(NODE_ELEMENT, "YOUSO2", "")) node(3).Text = "AAAAAAA" 'XMLドキュメントの出力 xmlDoc.Save ("customer.xml") End Sub ============================ よろしくお願いいたします。

  • UTF-8の「~」をsjisにencodeすると「?」になってしまいます

    <?xml version="1.0" encoding="UTF-8" ?> <root> <data>あ~お</data> </root> というようなXMLをXML::Simpleでparseし、 use Encode; $data = encode("sjis", $xmldata); のようにsjisにエンコードしてhtmlで表示させたところ、 「あ~お」の「~」のところが「?」になってしまいます。 これを「あ~お」と表示するにはどうしたらよいでしょうか。 表示する方のHTMLのコードはShift_JISでなければなりません。 アドバイスのほど、よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • 要素の内容にxmlを入れたい

    次のようなxmlを作成しました。 <?xml version="1.0" encoding="UTF-8"?> <tns:StateChange xsi:schemaLocation="http://sample.com/Change.xsd" xmlns:tns="http://sample.com/XSDDefinition" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <ServiceName>test</ServiceName> <wsdl></wsdl> </tns:StateChange> wsdl要素の内容として <?xml version="1.0" encoding="utf-8\"?><wsdl:definitions xmlns:s="http://www.w3.org/2001/XMLSchema".... といったいわゆるWSDLを文字列として指定したいと考えて、指定するとvalidate時にエラーになってしまいます。 xmlを要素の内容にしたい場合、どのようにすればいいのでしょうか?

    • ベストアンサー
    • XML

専門家に質問してみよう