2011-06-26 3 views
12

Mam problem z poznaniem celu dokumentów XSD i chciałbym wyjaśnienie lub link do przyzwoitego zasobu. Przez kilka godzin czytałem różne strony internetowe i nie znalazłem niczego, co tłumaczyłoby "duży obraz".Kiedy należy używać plików XSD?

Konkretnie chciałbym wiedzieć:

  1. Kiedy trzeba XSD? Dlaczego miałbyś używać jednego?
  2. Jakie zalety ma XSD? Jakie są alternatywy?

Z tego, co rozumiem do tej pory, zasadniczo opisuje się strukturę klas w formacie XML. Ale co z tym zrobisz? Czy jest używany podczas kompilacji? Czy jest on używany w celu łatwiejszego zapisywania wystąpień klas w dokumencie XML?

Mam problemy z zobaczeniem, dlaczego trzeba opisać klasy w pliku XML, kiedy można po prostu użyć pliku kodu. Moją pierwszą myślą było, że w jakiś sposób XSD zostanie załadowany w czasie wykonywania i pozwoliłby użytkownikom na modyfikowanie go w locie, ale to nie ma większego sensu, ponieważ jeśli doda się obiekt, nie ma sposobu na odniesienie go w pozostałej części kod.

Czy możliwe jest opisanie funkcji w dokumencie XSD/XML?

Dziękuję z wyprzedzeniem.

+0

Opisujesz wyjątkowo wąskie i ograniczone użycie plików schematów XML. Zmień tytuł i tagi pytania, aby odnosić się do konkretnych zastosowań, do których się odnosisz. – skaffman

+0

Więcej informacji na temat XSD http://stackoverflow.com/questions/3403644/what-is-the- purpose-of-xsd-files – pramodc84

Odpowiedz

5

XSD pozwala na definiowanie obiektów schematu. Istnieje wiele narzędzi, które pobierają xsd jako dane wejściowe i generują klasy dla tych obiektów. Wiele z tych narzędzi generuje także kod Marshalling/Unmarshalling - (przekształcający obiekty na xml i na odwrót) oraz oprócz klas obiektów o zwykłej wartości. Istnieje wiele aplikacji, które muszą konwertować instancje obiektów w pamięci na reprezentację xml i odwrotnie, bez xsd i odpowiednie narzędzie, które trzeba zapisać kod konwersji dla każdego obiektu ręcznie, co może być podatne na błędy i/lub może być bardzo drogie w zależności od liczby klas w Twojej domenie. Reprezentacja xml obiektu może również nie być prawidłowa, jeśli pochodzi z zewnętrznego źródła, posiadającego xsd może je sprawdzić i pozwolić na odmłodzenie ich do instancji obiektów.

W celu uzyskania dalszych informacji, patrz

Castor/XML for Java Beans itp

xsd.exe narzędzi dla Microsoft Tech.

1

1) Od http://en.wikipedia.org/wiki/XML_Schema_(W3C):

Podobnie jak wszystkie języki schematów XML, XSD mogą być używane do wyrażenia zbiór zasad, do których dokument XML muszą być zgodne, aby być uznane za „ważne” według tego schematu .

Przykład: Mamy układ plików XML, który opisuje egzamin. Pytania, typy pytań, odpowiedzi, punkty itp. Aby upewnić się, że każdy plik egzaminu, którego używamy podczas faktycznych egzaminów, działa zgodnie z oczekiwaniami, zatwierdzamy je na podstawie XSD.

2) Listę alternatywnych (np DTD) schematów i ich cech, spójrz na te slajdy:

2

Kopiowanie W3Schools:

"

Celem schematu XML jest definiuje prawne bloki konstrukcyjne dokumentu XML , podobnie jak DTD.

schematu XML:

- defines elements that can appear in a document 
- defines attributes that can appear in a document 
- defines which elements are child elements 
- defines the order of child elements 
- defines the number of child elements 
- defines whether an element is empty or can include text 
- defines data types for elements and attributes 
- defines default and fixed values for elements and attributes 

"

W praktyce określa XML, który jest ważny dla danego celu - fro przykład deweloper system może wykorzystać go do definiowania co consitutes ważny Plik XML do wejścia do ich systemu.

+0

Po prostu zostaw to tutaj: http://w3fools.com/ – miku

1

XSD to dokumenty, które określają strukturę dokumentu XML i pomagają w ich weryfikacji. Alternatywą dla nich są pliki DTD. Te pliki są najczęściej używane w dokumentach HTML.

2

Wygląda na to, że nie masz pewności co do jednego aspektu schematu XML - ich użycie służy jako wejście do XSD.EXE lub innego narzędzia, które może zrobić coś podobnego. XSD.EXE pobiera plik XML Schema i może wytworzyć zestaw klas .NET, które można przekształcić do postaci szeregowej w XML, który będzie sprawdzał poprawność względem schematu.

To jest narożnik przypadku narożnego.

13

Twoja rozmowa na temat "plików klas" i "struktury klas" sugeruje, że myślisz o strukturze danych, ponieważ jest ona definiowana przede wszystkim przez struktury danych językowych w języku programowania - to znaczy, że wybierasz raczej widok programistyczny niż dane. centryczny widok. To raczej brakuje punktu XML, który zaczyna się od punktu widzenia, że ​​jeśli aplikacje (zwłaszcza aplikacje, które są niezależnie opracowywane) są do efektywnej wymiany danych, to projekt danych musi być niezależny od projektu aplikacji. Ten "projekt danych" jest często wyrażany w schemacie (albo schemacie XSD, albo w jakimś innym rodzaju) i reprezentuje kontrakt między aplikacjami komunikacyjnymi (tak jak RFC822 definiuje dane, które musi obsługiwać aplikacja e-mail). Poprzez walidację danych ze schematem, aplikacje mogą być pewne, że to, co są wysyłane, jest zgodne z uzgodnioną specyfikacją.

+0

+1 Dziękuję za wgląd. Masz rację - myślałem o tym ściśle z punktu widzenia programowania. Chyba pokazuję swój brak doświadczenia. Chciałbym zaakceptować to jako odpowiedź. Niestety nie jest to dokładnie "odpowiedź" na pierwotnie zadane pytanie, ale zdecydowanie dało mi coś do myślenia. Dziękuję Ci bardzo. – Eric