XmlSchemaSet.Add Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Dodaje schemat języka definicji schematu XML (XSD) do elementu XmlSchemaSet.
Przeciążenia
Add(XmlSchema) |
Dodaje dane XmlSchema do elementu XmlSchemaSet. |
Add(XmlSchemaSet) |
Dodaje wszystkie schematy języka definicji schematu XML (XSD) w danym XmlSchemaSet pliku .XmlSchemaSet |
Add(String, String) |
Dodaje schemat języka definicji schematu XML (XSD) pod adresem URL określonym w pliku XmlSchemaSet. |
Add(String, XmlReader) |
Dodaje schemat języka definicji schematu XML (XSD) zawarty w elemecie XmlReader do elementu XmlSchemaSet. |
Add(XmlSchema)
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
Dodaje dane XmlSchema do elementu XmlSchemaSet.
public:
System::Xml::Schema::XmlSchema ^ Add(System::Xml::Schema::XmlSchema ^ schema);
public System.Xml.Schema.XmlSchema? Add (System.Xml.Schema.XmlSchema schema);
public System.Xml.Schema.XmlSchema Add (System.Xml.Schema.XmlSchema schema);
member this.Add : System.Xml.Schema.XmlSchema -> System.Xml.Schema.XmlSchema
Public Function Add (schema As XmlSchema) As XmlSchema
Parametry
- schema
- XmlSchema
Obiekt XmlSchema , który ma zostać dodany do obiektu XmlSchemaSet.
Zwraca
XmlSchema Obiekt, jeśli schemat jest prawidłowy. Jeśli schemat jest nieprawidłowy i ValidationEventHandler określony, null
zostanie zwrócone i zostanie zgłoszone odpowiednie zdarzenie weryfikacji. W przeciwnym razie zgłaszany jest element XmlSchemaException .
Wyjątki
Schemat jest nieprawidłowy.
Obiekt XmlSchema przekazany jako parametr to null
.
Uwagi
XmlSchema Jeśli obiekt już istnieje w metodzie XmlSchemaSet, Add nic nie robi.
Funkcjonalność tej metody jest identyczna z funkcją Add metody .
Dotyczy
Add(XmlSchemaSet)
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
Dodaje wszystkie schematy języka definicji schematu XML (XSD) w danym XmlSchemaSet pliku .XmlSchemaSet
public:
void Add(System::Xml::Schema::XmlSchemaSet ^ schemas);
public void Add (System.Xml.Schema.XmlSchemaSet schemas);
member this.Add : System.Xml.Schema.XmlSchemaSet -> unit
Public Sub Add (schemas As XmlSchemaSet)
Parametry
- schemas
- XmlSchemaSet
Obiekt XmlSchemaSet.
Wyjątki
Schemat w obiekcie XmlSchemaSet jest nieprawidłowy.
Obiekt XmlSchemaSet przekazany jako parametr to null
.
Przykłady
Poniższy przykład kodu ilustruje dodawanie schematów do XmlSchemaSetelementu , a następnie dodanie XmlSchemaSet elementu do nowego XmlSchemaSet przy użyciu Add metody .
Dim schemaSet1 As XmlSchemaSet = New XmlSchemaSet
schemaSet1.Add("http://www.contoso.com/retail", "http://www.contoso.com/retail.xsd")
schemaSet1.Add("http://www.contoso.com/books", "http://www.contoso.com/books.xsd")
schemaSet1.Add("http://www.contoso.com/music", "http://www.contoso.com/music.xsd")
Dim schemaSet2 As XmlSchemaSet = New XmlSchemaSet
schemaSet2.Add(schemaSet1)
XmlSchemaSet schemaSet1 = new XmlSchemaSet();
schemaSet1.Add("http://www.contoso.com/retail", "http://www.contoso.com/retail.xsd");
schemaSet1.Add("http://www.contoso.com/books", "http://www.contoso.com/books.xsd");
schemaSet1.Add("http://www.contoso.com/music", "http://www.contoso.com/music.xsd");
XmlSchemaSet schemaSet2 = new XmlSchemaSet();
schemaSet2.Add(schemaSet1);
Uwagi
Aby można było dodać schemat do elementu XmlSchemaSet, należy go pomyślnie wstępnie przetworzyć. Wstępne przetwarzanie wykonuje następujące podstawowe zadania.
Schemat jest sprawdzany pod kątem poprawności strukturalnej zgodnie z regułami schematu XML W3C, ale schemat nie jest w pełni weryfikowany.
Odwołania do składników schematu wewnętrznego i zewnętrznego są rozwiązywane. Wszystkie zaimportowane lub dołączone schematy, które zostały pomyślnie pobrane, są również dodawane do programu XmlSchemaSet. Zaimportowane schematy są dodawane jako oddzielne XmlSchema obiekty, a dołączone schematy są częścią dołączania XmlSchema.
IsCompiled Jeśli właściwość do dodania XmlSchemaSet to true
, wszystkie schematy w XmlSchemaSet pliku do dodania są dodawane do elementu XmlSchemaSet.
IsCompiled Jeśli właściwość do dodania XmlSchemaSet to false
, przed dodaniem każdy dodany schemat jest wstępnie przetworzony. Jeśli którykolwiek ze schematów nowo dodanych XmlSchemaSet nie może zostać wstępnie przetworzony, nie zostaną dodane żadne schematy. Zamiast tego XmlSchemaException zostanie zgłoszony błąd. W związku z tym dwa poniższe przykłady kodu nie są równoważne.
' First example
schemaSet.Add(schemaSet1)
' Second example
Dim schema As XmlSchema
For Each schema in schemaSet.Schemas()
schemaSet.Add(schema)
Next
// First example
schemaSet.Add(schemaSet1);
// Second example
foreach(XmlSchema schema in schemaSet.Schemas())
{
schemaSet.Add(schema);
}
Poprzednie dwa przykłady kodu nie są równoważne. W pierwszym przykładzie, jeśli istnieje nieprawidłowy schemat i schemaSet1
jego IsCompiled właściwość jest ustawiona na false
wartość , żadne schematy nie są dodawane do elementu schemaSet
. W drugim przykładzie można dodać wiele schematów przed schemaSet
napotkaniu nieprawidłowego schematu i zgłaszany jest wyjątek.
Dotyczy
Add(String, String)
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
Dodaje schemat języka definicji schematu XML (XSD) pod adresem URL określonym w pliku XmlSchemaSet.
public:
System::Xml::Schema::XmlSchema ^ Add(System::String ^ targetNamespace, System::String ^ schemaUri);
public System.Xml.Schema.XmlSchema? Add (string? targetNamespace, string schemaUri);
public System.Xml.Schema.XmlSchema Add (string targetNamespace, string schemaUri);
member this.Add : string * string -> System.Xml.Schema.XmlSchema
Public Function Add (targetNamespace As String, schemaUri As String) As XmlSchema
Parametry
- targetNamespace
- String
Właściwość schematu targetNamespace
lub null
do użycia targetNamespace
określonego w schemacie.
- schemaUri
- String
Adres URL określający schemat do załadowania.
Zwraca
XmlSchema Obiekt, jeśli schemat jest prawidłowy. Jeśli schemat jest nieprawidłowy i ValidationEventHandler określony, null
zostanie zwrócone i zostanie zgłoszone odpowiednie zdarzenie weryfikacji. W przeciwnym razie zgłaszany jest element XmlSchemaException .
Wyjątki
Schemat jest nieprawidłowy.
Adres URL przekazany jako parametr to null
lub Empty.
Przykłady
Poniższy przykład kodu dodaje http://www.contoso.com/books.xsd
schemat z docelową przestrzenią nazw http://www.contoso.com/books
do obiektu XmlSchemaSet.
Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
schemaSet.Add("http://www.contoso.com/books", "http://www.contoso.com/books.xsd")
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add("http://www.contoso.com/books", "http://www.contoso.com/books.xsd");
W przykładzie użyto books.xsd
pliku jako danych wejściowych.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.contoso.com/books" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="bookstore">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string" />
<xs:element name="author">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="name" type="xs:string" />
<xs:element minOccurs="0" name="first-name" type="xs:string" />
<xs:element minOccurs="0" name="last-name" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="price" type="xs:decimal" />
</xs:sequence>
<xs:attribute name="genre" type="xs:string" use="required" />
<xs:attribute name="publicationdate" type="xs:unsignedShort" use="required" />
<xs:attribute name="ISBN" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Uwagi
Aby można było dodać schemat do elementu XmlSchemaSet, należy go pomyślnie wstępnie przetworzyć. Wstępne przetwarzanie wykonuje następujące podstawowe zadania.
Schemat jest sprawdzany pod kątem poprawności strukturalnej zgodnie z regułami schematu XML W3C, ale schemat nie jest w pełni weryfikowany.
Odwołania do składników schematu wewnętrznego i zewnętrznego są rozwiązywane. Wszystkie zaimportowane lub dołączone schematy, które zostały pomyślnie pobrane, są również dodawane do programu XmlSchemaSet. Zaimportowane schematy są dodawane jako oddzielne XmlSchema obiekty, a dołączone schematy są częścią dołączania XmlSchema.
Poniżej przedstawiono ważne uwagi, które należy wziąć pod uwagę podczas korzystania z Add metody .
Dodanie schematu do obiektu XmlSchemaSet z tą samą docelową przestrzenią nazw i adresem URL lokalizacji schematu co schemat znajdujący się już w obiekcie XmlSchemaSet spowoduje zwrócenie oryginalnego obiektu schematu.
Po pomyślnym dodaniu nowego schematu do XmlSchemaSetIsCompiled obiektu właściwość XmlSchemaSet jest ustawiona na
false
wartość .Wszystkie elementy dołączania lub importowania napotkane w schemacie XML są rozpoznawane po wywołaniu Add metody. Nie można rozpoznać elementów dołączania i importowania powoduje wyświetlenie ostrzeżenia o weryfikacji schematu, a jeśli nie ValidationEventHandler określono żadnego XmlSchemaSet obiektu, to ostrzeżenie nie zostanie zgłoszone.
Jeśli schemat z tą samą docelową przestrzenią nazw co schemat, który już istnieje w obiekcie XmlSchemaSet , zostanie dodany do XmlSchemaSetprogramu , oba schematy zostaną dodane.
Uwaga
To zachowanie różni się od przestarzałego XmlSchemaCollection obiektu.
Metoda AddXmlSchemaSet ma możliwość używania docelowej przestrzeni nazw zdefiniowanej w schemacie, zamiast wymagać określenia docelowej przestrzeni nazw jako parametru podczas wywoływanej Add metody. Określenie
null
w parametrzetargetNamespace
Add metody powoduje XmlSchemaSet użycie docelowej przestrzeni nazw zdefiniowanej w schemacie, jak pokazano w poniższym przykładzie kodu.
Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
schemaSet.Add(Nothing, "books.xsd")
Dim schema As XmlSchema
For Each schema In schemaSet.Schemas("http://www.contoso.com/books")
schema.Write(Console.Out)
Next
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add(null, "books.xsd");
foreach(XmlSchema schema in schemaSet.Schemas("http://www.contoso.com/books"))
{
schema.Write(Console.Out);
}
W powyższym null
przykładzie kodu jest określony jako targetNamespace
parametr Add metody . W związku z tym targetNamespace
jest używany zdefiniowany w pliku books.xml. W takim przypadku wynik wywołania Add metody byłby identyczny, gdyby http://www.contoso.com/books
został określony jako targetNamespace
parametr.
- Schemat XML W3C umożliwia schematom bez docelowej przestrzeni nazw uwzględniane w schematach ze zdefiniowaną docelową przestrzenią nazw. W takim przypadku schemat bez zdefiniowanej docelowej przestrzeni nazw jest zmuszany do docelowej przestrzeni nazw dołączania schematu. Uwzględniony schemat jest traktowany tak, jakby miał zdefiniowaną docelową przestrzeń nazw. Podobnie schematy bez docelowej przestrzeni nazw można dodać do XmlSchemaSet przestrzeni nazw i coerced do docelowej przestrzeni nazw określonej przez metodę Add , jak pokazano w poniższym przykładzie.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="A" type="xs:string" />
</xs:schema>
Jeśli powyższy schemat zostanie dodany do obiektu XmlSchemaSet z docelową przestrzenią nazw http://www.contoso.com/new/targetnamespace
(jak pokazano w poniższym kodzie), będzie traktowana tak, jakby docelowa przestrzeń nazw zadeklarowana w schemacie to http://www.contoso.com/new/targetnamespace
.
Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
schemaSet.Add("http://www.contoso.com/new/targetnamespace", "http://www.contoso.com/targetnamespace.xsd")
Dim schema As XmlSchema
For Each schema in schemaSet.Schemas()
Console.WriteLine(schema.TargetNamespace)
Next
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add("http://www.contoso.com/new/targetnamespace", "http://www.contoso.com/targetnamespace.xsd");
foreach(XmlSchema schema in schemaSet.Schemas())
{
Console.WriteLine(schema.TargetNamespace);
}
Dotyczy
Add(String, XmlReader)
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
Dodaje schemat języka definicji schematu XML (XSD) zawarty w elemecie XmlReader do elementu XmlSchemaSet.
public:
System::Xml::Schema::XmlSchema ^ Add(System::String ^ targetNamespace, System::Xml::XmlReader ^ schemaDocument);
public System.Xml.Schema.XmlSchema? Add (string? targetNamespace, System.Xml.XmlReader schemaDocument);
public System.Xml.Schema.XmlSchema Add (string targetNamespace, System.Xml.XmlReader schemaDocument);
member this.Add : string * System.Xml.XmlReader -> System.Xml.Schema.XmlSchema
Public Function Add (targetNamespace As String, schemaDocument As XmlReader) As XmlSchema
Parametry
- targetNamespace
- String
Właściwość schematu targetNamespace
lub null
do użycia targetNamespace
określonego w schemacie.
Zwraca
XmlSchema Obiekt, jeśli schemat jest prawidłowy. Jeśli schemat jest nieprawidłowy i ValidationEventHandler określony, null
zostanie zwrócone i zostanie zgłoszone odpowiednie zdarzenie weryfikacji. W przeciwnym razie zgłaszany jest element XmlSchemaException .
Wyjątki
Schemat jest nieprawidłowy.
Obiekt XmlReader przekazany jako parametr to null
.
Przykłady
Poniższy przykład kodu dodaje schemat books.xsd zawarty w XmlTextReader obiekcie z docelową przestrzenią nazw http://www.contoso.com/books
do obiektu XmlSchemaSet.
Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
schemaSet.Add("http://www.contoso.com/books", New XmlTextReader("books.xsd")
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add("http://www.contoso.com/books", new XmlTextReader("books.xsd");
Uwagi
Aby można było dodać schemat do elementu XmlSchemaSet, należy go pomyślnie wstępnie przetworzyć. Wstępne przetwarzanie wykonuje następujące podstawowe zadania.
Schemat jest sprawdzany pod kątem poprawności strukturalnej zgodnie z regułami schematu XML W3C, ale schemat nie jest w pełni weryfikowany.
Odwołania do składników schematu wewnętrznego i zewnętrznego są rozwiązywane. Wszystkie zaimportowane lub dołączone schematy, które zostały pomyślnie pobrane, są również dodawane do programu XmlSchemaSet. Zaimportowane schematy są dodawane jako oddzielne XmlSchema obiekty, a dołączone schematy są częścią dołączania XmlSchema.
Poniżej przedstawiono ważne uwagi, które należy wziąć pod uwagę podczas korzystania z Add metody .
Pomyślnie pobrano schematy zaimportowane lub dołączone przez schematy zawarte w elemecie XmlReader są również dodawane do elementu XmlSchemaSet.
Jeśli element XmlReader nie jest umieszczony na elemencie głównym, jest zgłaszany, XmlSchemaException chyba że bieżący element jest elementem. Jeśli bieżący element jest elementem
xs:schema
, dokument schematu jest odczytywany w XmlSchemaSetelemencie ; w przeciwnym razie element jest zgłaszany, XmlSchemaException ponieważ schemat jest nieprawidłowy.Jeśli element XmlReader znajduje się w sekwencji węzłów XML, dodawany jest tylko pierwszy węzeł w sekwencji.
Jeśli schemat został utworzony na podstawie XmlReader.Create wywołania metody, wartość ProcessInlineSchema właściwości jest ignorowana, ponieważ wbudowane przetwarzanie schematu nie jest stosowane dla dokumentów schematu XML W3C.
Właściwość XmlResolver elementu XmlReader nie jest używana do rozpoznawania odwołań do przestrzeni nazw ani lokalizacji schematu w elementach dołączania i importowania. XmlResolver Zamiast tego jest używana właściwość .XmlSchemaSet
Metoda AddXmlSchemaSet ma możliwość używania docelowej przestrzeni nazw zdefiniowanej w schemacie, zamiast wymagać określenia docelowej przestrzeni nazw jako parametru podczas wywoływanej Add metody. Określenie
null
metody lub String.Empty do Add metody powoduje XmlSchemaSet użycie docelowej przestrzeni nazw zdefiniowanej w schemacie. Aby zapoznać się z przykładem tego zachowania, zobacz metodę Add .
Pozostałe funkcje tej metody są identyczne z funkcją Add metody .