4

次の XML 名前空間と schemaLocation を参照してください。

<agr:ABWInvoice 
  xsi:schemaLocation = "
    http://services.agresso.com/schema/ABWInvoice/2011/11/14 
    http://services.agresso.com/schema/ABWInvoice/2011/11/14/ABWInvoice.xsd" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:agrlib = "http://services.agresso.com/schema/ABWSchemaLib/2011/11/14"
  xmlns:agr = "http://services.agresso.com/schema/ABWInvoice/2011/11/14"
>

</agr:ABWInvoice>

次の方法で名前空間を追加しましたが、うまく機能しているようです。

XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance");
ns.Add("agrlib", "http://services.agresso.com/schema/ABWSchemaLib/2011/11/14");
ns.Add("agr", "http://services.agresso.com/schema/ABWInvoice/2011/11/14");

しかし、次のスキーマロケーションを追加するにはどうすればよいですか? 何か案は?

xsi:schemaLocation="http://services.agresso.com/schema/ABWInvoice/2011/11/14 http://services.agresso.com/schema/ABWInvoice/2011/11/14/ABWInvoice.xsd"
4

3 に答える 3

7
xs:schemaLocation="..."

は名前空間宣言ではありません: これは属性です (その値はたまたま名前空間ですが、気にしないでください)。したがって、属性値を設定するメソッドを使用して追加します。私は C# XML API に詳しくありませんが、おそらく次のようなものです。

XmlElement.SetAttributeValue (localname, prefix, namespace, value)

localname= "schemaLocation"
prefix= "xsi"
namespace= "http://www.w3.org/2001/XMLSchema-instance"
value_"your schema location"

于 2013-01-29T02:36:47.627 に答える
6

マイクの返事は私に次の答えを得るように導きました:

    [XmlAttributeAttribute("schemaLocation", AttributeName = "schemaLocation", 
    Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
    public string SchemaLocation = "http://services.agresso.com/schema/ABWInvoice/2011/11/14 http://services.agresso.com/schema/ABWInvoice/2011/11/14/ABWInvoice.xsd";
于 2013-01-29T08:27:44.680 に答える